如何将SQL语句的结果集存储到变量中?

时间:2017-11-06 21:18:14

标签: sql sql-server

我正在写一个SP,我想知道我是否可以将一个语句的结果存储到一个变量中,我将触发另一个查询。

例如,下面的查询给了我id,我需要将此id用于另一个Insert语句。

variable id = Select id from tableA where myCondition = 'this';
Insert into tableB values(id, a, ab ,c);

我不确定在SQL Server中是否存在这样的东西,我可以在这种情况下定义一个变量id的类型为int,稍后再用它。

由于

2 个答案:

答案 0 :(得分:3)

只需声明一个变量并将查询结果分配给变量。

DECLARE @Id INT = (SELECT id FROM tableA WHERE myCondition = 'this');

然后你可以这样做:

INSERT INTO tableB values(@Id, a, ab ,c);

答案 1 :(得分:1)

如果select语句中返回的行数超过1行,则可以使用表变量:

DECLARE @temp TABLE (id int) 

INSERT INTO @temp (id)
SELECT id FROM tableA WHERE myCondition = 'this'

INSERT INTO tableB
SELECT T.id, a, ab, c
  FROM @temp T  ...