设置Transact-SQL变量中的值


  本文标签:SQL 变量 Transact

  下文将教您如何设置Transact-SQL变量中的值,供您参考,如果您对SQL中变量使用方面感兴趣的话,不妨一看,相信对您有所帮助  。

  第一次声明变量时将此变量的值设为 NULL  。若要为变量赋值,请使用 SET 语句  。这是为变量赋值的较好的方法  。也可以通过 SELECT 语句的选择列表中当前所引用值为变量赋值  。

  若要通过使用 SET 语句为变量赋值,请包含变量名和需要赋给变量的值  。这是为变量赋值的较好的方法  。例如,下面的批处理声明两个变量、对它们赋值并在 SELECT 语句的 WHERE 子句中予以使用:

  USE Northwind
GO
-- Declare two variables.
DECLARE @FirstNameVariable NVARCHAR(20),
   @RegionVariable NVARCHAR(30)

  -- Set their values.
SET @FirstNameVariable = NAnne
SET @RegionVariable = NWA

  -- Use them in the WHERE clause of a SELECT statement.
SELECT LastName, FirstName, Title
FROM Employees
WHERE FirstName = @FirstNameVariable
   OR Region = @RegionVariable
GO
变量也可以通过选择列表中当前所引用的值赋值  。如果在选择列表中引用变量,则它应当被赋以标量值或者 SELECT 语句应仅返回一行  。例如:

  USE Northwind
GO
DECLARE @EmpIDVariable INT

  SELECT @EmpIDVariable = MAX(EmployeeID)
FROM Employees
GO

  如果 SELECT 语句返回多行而且变量引用一个非标量表达式,则变量被设置为结果集最后一行中表达式的返回值  。例如,在此批处理中将 @EmpIDVariable 设置为返回的最后一行的 EmployeeID 值,此值为 1:

  USE Northwind
GO
DECLARE @EmpIDVariable INT

  SELECT @EmpIDVariable = EmployeeID
FROM Employees
ORDER BY EmployeeID DESC

  SELECT @EmpIDVariable
GO