我正在写一个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,稍后再用它。
由于
答案 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 ...