日期:2014-05-16  浏览次数:20335 次

如何实现存储过程中的动态SQL
表A,字段若干。

存储过程P,用于实现对表A中的字段置0,

现在希望能实现根据传递的参数来更新相应字段的目的。

粗略的SQL如下


CREATE PROCEDURE P_TEST
@PARM VARCHAR(10),
@ID INT

AS

UPDATE A
SET @PARM =0
WHERE ID=@ID


其中@PARM就是字段名。

不知道有没有这样的写法,谢谢啦!
------解决方案--------------------
用连接字符串的吧。 如@PARM=‘UPDATE A SET ‘+@PARM +’ =0 WHERE ID=‘+@ID
------解决方案--------------------
不能这样写,不过可以用动态SQL实现

------解决方案--------------------
能不能你自己执行下不就知道了,退一万步讲,就算这样不行也可以传标记位置,然后通过字符串拼接成一句sql然后执行
SET @sql = 'SELECT * FROM '+ @TableName +'WHERE ......'
EXEC(@sql);