对多个变量赋予多个值:

  当需要赋予多个变量值时,使用SELECT 从一个查询中获取数据是。因为可以直接赋值,而不用每次都写SET。可以看看下面的例子:


USE AdventureWorks
GO

-- 直接赋值
DECLARE @var1 VARCHAR(50)
DECLARE @var2 VARCHAR(50)
DECLARE @var3 VARCHAR(50)

SELECT @var1 = 'Value1', @var2 = 'Value2', @var3 = 'Value3'
PRINT @var1
PRINT @var2
PRINT @var3
GO

-- 通过查询方式赋值
DECLARE @name VARCHAR(50)
DECLARE @productNo VARCHAR(25)
DECLARE @color VARCHAR(15)

SELECT @name = [Name], @productNo = ProductNumber, @color = Color
FROM Production.Product
WHERE ProductID = 320
PRINT @name
PRINT @productNo
PRINT @color
GO
 


  得到以下结果:

  如果需要使用SET,那必须使用多个单独的语句来实现:


USE AdventureWorks
GO

-- 直接赋值
DECLARE @var1 VARCHAR(50)
DECLARE @var2 VARCHAR(50)
DECLARE @var3 VARCHAR(50)
SET @var1 = 'Value1'
SET @var2 = 'Value2'
SET @var3 = 'Value3'
PRINT @var1
PRINT @var2
PRINT @var3
GO

-- 通过查询来赋值
DECLARE @name VARCHAR(50)
DECLARE @productNo VARCHAR(25)
DECLARE @color VARCHAR(15)
SET @name =(SELECT [Name] FROM Production.Product WHERE ProductID = 320)
SET @productNo = (SELECT ProductNumber FROM Production.Product WHERE ProductID = 320)
SET @color = (SELECT Color FROM Production.Product WHERE ProductID = 320)
PRINT @name
PRINT @productNo
PRINT @color
GO
 


  得到结果:

  通过对比可以明显看出SELECT 在多值赋值的情况下简便很多,并且也高效,因为一次性实现。