sql - T-SQL 中 SELECT 和 SET 有什么区别

标签 sql sql-server tsql

我正在开发一个执行一些动态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/

相关文章:

.net - 在事务中使用 "GO"

sql-server - T-SQL 如何选择最近的日期

sql - 如何获取SQL子串?

objective-c - 如何构建一个在 iOS 和 Web 上使用的数据库

sql - 使用 EXISTS 引入子查询

c# - 如何一次向多个表中插入数据

php - mysql 命令未使用 php 执行

sql - 比较两个用户在 SQL Server 上的权限

SQL 服务器 : Get data for only the past year

sql-server - 只读用户的 SQL Server 权限以防止锁定