sql如何存储过程中申请@变量

2025-05-09 02:21:22
推荐回答(2个)
回答(1):

整个语句块创建了一个存储过程,其中的查询使用了存储过程的参数。你可以通过直接执行存储过程,将值传给传出过程的参数,来实现执行查询。
例如:
execute dbo].[p_sele_sp] '%a%','1%',‘aaa%’,'bbb%';

如果希望直接执行查询语句,则需要用declare关键字事先声明变量。如下:
-- 声明变量
declare @spbh varchar(20) , @zjm varchar(100) , @sptm varchar(20) , @splb varchar(20)
-- 给变量赋值
set @spbh = ’%a%'
set @zjm = '1%'
set @sptm = ‘aaa%’
set @splb = 'bbb%'

--执行查询
SELECT TOP 200 spbh,spname,dw,spgg,scqy,spcd,sl,lsj,zdsj,spid,splb,jj,
sptm,spsx,kfid,jx,pzwh,is_sy,jbz,zbz,ajia,bjia,cjia,djia,bz,bz1,bz2,bz3,bz4,bz5,bz6,bz7,bz8,bz9
FROM t_sp_info
WHERE ( status = '是' ) AND
( pym like @zjm OR spname like @zjm OR spbh like @spbh OR sptm like @sptm ) AND ( splb like @splb )

回答(2):

你创建的带参数存储过程,执行存储过程并赋值参数
exec p_sele_sp 'a','b','c','d'
若直接执行内部语句,那么需要用declare定义变量
declare @spbh varchar(20)