[此贴子已经被作者于2006-11-3 17:07:37编辑过]
[此贴子已经被作者于2006-11-3 17:07:37编辑过]
[QUOTE]指定将(使用 DECLARE @local_variable 创建的)给定的局部变量设置为指定的表达式。
建议将 SET @local_variable 而不是 SELECT @local_variable 用于变量赋值。语法
SELECT { @local_variable = expression } [ ,...n ]
参数
@local_variable
是给其赋值的声明变量。
expression
是任何有效的 Microsoft® SQL Server™ 表达式,包括标量子查询。
注释
SELECT @local_variable 通常用于将单个值返回到变量中。例如,如果 expression 为列名,则返回多个值。如果 SELECT 语句返回多个值,则将返回的最后一个值赋给变量。
如果 SELECT 语句没有返回行,变量将保留当前值。如果 expression 是不返回值的标量子查询,则将变量设为 NULL。
在第一个示例中,将变量 @var1 赋给 Generic Name 作为它的值。在 Customers 表中不存在为 CustomerID 指定的值,因此对该表的查询不返回行。该变量将保留 Generic Name 值。
USE Northwind
DECLARE @var1 nvarchar(30)
SELECT @var1 = 'Generic Name'
SELECT @var1 = CompanyName
FROM Customers
WHERE CustomerID = 'ALFKA'
SELECT @var1 AS 'Company Name'
结果如下:
Company Name
----------------------------------------
Generic Name
在下例中,子查询用于给 @var1 赋值。为 CustomerID 请求的值不存在,因此子查询不返回值并将该变量设为 NULL。
USE Northwind
DECLARE @var1 nvarchar(30)
SELECT @var1 = 'Generic Name'
SELECT @var1 =
(SELECT CompanyName
FROM Customers
WHERE CustomerID = 'ALFKA')
SELECT @var1 AS 'Company Name'
结果如下:
Company Name
----------------------------
NULL
一个 SELECT 语句可以初始化多个局部变量。[/QUOTE]