我正在开发一个执行一些动态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而不是SET。我不知道你能做到这一点。有人可以向我解释一下两者之间的区别吗?我一直认为 SELECT 只是用于选择记录。
最佳答案
SELECT 是 ANSI,SET @LocalVar 是 MS T-SQL
SELECT 允许多个分配者:例如 SELECT @foo = 1, @bar = 2
关于sql - T-SQL 中 SELECT 和 SET 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1034634/