如何将SQL语句的结果集存储到变量中?
我正在编写一个SP,我想知道是否可以将语句的结果存储到一个变量中,然后触发另一个查询 例如,下面的查询给了我一个如何将SQL语句的结果集存储到变量中?,sql,sql-server,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类型,稍后使用它 谢谢只需声
id
,我需要将这个id
用于另一个Insert语句
variable id = Select id from tableA where myCondition = 'this';
Insert into tableB values(id, a, ab ,c);
我不确定SQL Server中是否存在类似的东西,我可以在这里定义一个变量,在本例中,id
是int类型,稍后使用它
谢谢只需声明一个变量并将查询结果分配给该变量即可
DECLARE @Id INT = (SELECT id FROM tableA WHERE myCondition = 'this');
然后你可以做:
INSERT INTO tableB values(@Id, a, ab ,c);
只需声明一个变量并将查询结果分配给该变量
DECLARE @Id INT = (SELECT id FROM tableA WHERE myCondition = 'this');
然后你可以做:
INSERT INTO tableB values(@Id, a, ab ,c);
如果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 ...
如果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 ...
谢谢佐尔科洛特。很高兴知道这一点。:)谢谢佐尔科洛特。很高兴知道这一点。:)