在结果集中存储变量值

时间:2016-02-21 09:13:59

标签: sql sql-server sql-server-2008

执行以下查询“SELECT ID, CODE FROM SAMPLE_TABLE”返回

ID  CODE
1   45
5   45
6   45
7   45
8   45  

我将它存储在临时表中。在所有情况下,CODE对于结果集的每一行保持相同。

我想获取代码值并将其设置为没有任何子查询的变量 像

INSERT INTO #TEMP_TABLE (ID) SELECT ID, @CODEVAL = CODE FROM SAMPLE_TABLE

但上面的代码对我不起作用。有没有其他方法可以在不进行查询的情况下将值设置为变量?

1 个答案:

答案 0 :(得分:0)

您似乎想要执行INSERT并将源表的CODE字段的值同时存储到变量中。

您最接近目标的是使用表变量并使用OUTPUT语句的INSERT子句:

DECLARE @CODEVAL TABLE(CODE int)

INSERT INTO #TEMP_TABLE(ID, CODE)
OUTPUT  INSERTED.CODE
INTO @CODEVAL
SELECT ID, CODE
FROM SAMPLE_TABLE

SELECT * 
FROM @CODEVAL

<强>输出:

CODE
====
45
45
45
45
45