2 u011384907 u011384907 于 2015.07.28 12:24 提问

sql语句怎么调用变量?
sql

我在存储过程里面定义一个变量,然后根据传进来的参数判
declare @a ;

if(isnull(@abc,0)>0)
set @a= ' and name="+@abc+"'

select * from p
where id=1 @abc
..
..像这样 在查询语句里面加这个 怎么做?
这个查询语句是很长的 有上千行
改成执行字符串的 exec('select ..'+@a+'...') 这种应该不好把

7个回答

oyljerry
oyljerry   Ds   Rxr 2015.08.03 12:16
已采纳

既然是存储过程了,变量通过参数传入,你内部字符串+拼接,然后exec来执行。基本就是这样

danielinbiti
danielinbiti   Ds   Rxr 2015.07.28 12:32
caozhy
caozhy   Ds   Rxr 2015.07.28 12:33

使用存储过程,可以dinginess参数。
不要拼接sql

caozhy
caozhy 输错了。
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.28 12:33

使用存储过程,可以定义参数。
不要拼接sql

u011384907
u011384907 之前这个判断是在程序里面判断 然后动态拼接sql的, 但是现在要做成存储过程 只能把判断放在里面了
2 年多之前 回复
jsntnjzb
jsntnjzb   2015.07.28 15:48

可以把整个sql语句先声明一个变量,然后动态拼接语句,最后执行。执行之前可以用print打印看一下,语句对不对。

sina_2831808769
sina_2831808769   Rxr 2015.07.28 20:40

存储过程 exec(参数1,参数2)

CSDNXIAON
CSDNXIAON   2015.08.03 12:18

SQL语句如何调用序列
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片