我正在处理执行一些动态sql的存储过程.这是我在
4GuysFromRolla.com上找到的例子
CREATE PROCEDURE MyProc (@TableName varchar(255),@FirstName varchar(50),@LastName varchar(50)) AS -- Create a variable @sqlStatement DECLARE @sqlStatement varchar(255) -- Enter the dynamic sql statement into the -- variable @sqlStatement SELECT @sqlStatement = "SELECT * FROM " + @TableName + "WHERE FirstName = '" + @FirstName + "' AND LastName = '" + @LastName + "'" -- Execute the sql statement EXEC(@sqlStatement)
如果您注意到,他们使用的是SELECT intead of SET.我不知道你能做到这一点.有人可以向我解释2之间的区别吗?我一直以为SELECT只是为了选择记录.
解决方法
SELECT是ANSI,SET @LocalVar是MS T-sql
SELECT允许多个assignents:例如SELECT @foo = 1,@ bar = 2