有没有办法使用SQL Server将SELECT查询的结果存储在存储过程中?
在下面的示例中,我想从选择查询中存储“one”和“two”。
示例:
DECLARE @Values ???
SET @Values = (SELECT one, two FROM dummyTable)
答案 0 :(得分:5)
您可以使用表变量:
DECLARE @Table TABLE (one varchar(100), two varchar(100)
INSERT INTO @TABLE
SELECT one, two from dummytable
与其他变量一样,这不能从proc范围之外访问。
对于大量行也不好,因为优化器总是为执行计划假设一行。
答案 1 :(得分:4)
SELECT @Value1 = One, @Value2 = two FROM dummyTable;
SQL Server中没有任何数组。
答案 2 :(得分:2)
如果您的查询只返回一行:
DECLARE @v1 int -- or whatever
DECLARE @v2 int
SELECT @v1 = one, @v2 = two
FROM dummyTable
WHERE id = 1
如果您的查询返回多行,您可以使用SELECT INTO
来避免声明表变量:
SELECT one, two
FROM dummyTable
INTO #temp
SELECT * FROM #temp
DROP TABLE #temp