2010-03-30 52 views
5

在SQL Server中,如何使用一个查询将多个列的值放入变量中?使用单个SQL查询将列值置于变量中

例如:我的查询是:

SELECT ET.ID,ET.Description,ET.DefaultTemplateText 
FROM TBL_EMAILTEMPLATE ET 
WHERE ET.NAME='OneWeekReminder' 

我要置入的列值的变量。

回答

12

您可以使用下面的语法:

Declare @id INT 
Declare @desc VarChar(100) 
Declare @template VarChar(100) 

SELECT @id = ET.ID, @desc = ET.Description, @template = ET.DefaultTemplateText 
FROM TBL_EMAILTEMPLATE ET 
WHERE ET.NAME='OneWeekReminder' 
+2

如果查询返回多行,它只是设置的值多次 – Andomar 2010-03-30 17:25:09

+0

@Andomar - 为纠正感谢。更新了答案。 – Oded 2010-03-30 17:26:21

3

声明变量第一接盘他们选择子句。

declare 
    @ID int, 
    @Description varchar(10), 
    @DefaultTemplateText varchar(10) 

select 
    @ID = ET.ID, 
    @Description = ET.Description, 
    @DefaultTemplateText = ET.DefaultTemplateText 
from 
    TBL_EMAILTEMPLATE ET 
where 
    ET.NAME = 'OneWeekReminder' 
2

您可以用逗号分隔多个赋值。例如:

declare @a varchar(50) 
declare @b varchar(50) 

select 
    @a = et.Description 
, @b = et.DefaultTemplateText 
from YourTable 
2

假设只有一行,

SELECT @id = ET.ID, @Description = ET.Description, @DefaultTemplateText = ET.DefaultTemplateText 
FROM TBL_EMAILTEMPLATE ET 
WHERE ET.NAME='OneWeekReminder'