【问题标题】:How to store multiple values from SELECT in SQL Server?如何在 SQL Server 中存储 SELECT 中的多个值?
【发布时间】:2012-01-03 20:02:33
【问题描述】:
有没有办法使用 SQL Server 将 SELECT 查询的结果存储在存储过程中?
在下面的示例中,我想存储选择查询中的“一”和“二”。
例子:
DECLARE @Values ???
SET @Values = (SELECT one, two FROM dummyTable)
【问题讨论】:
标签:
sql-server
sql-server-2008
stored-procedures
【解决方案1】:
您可以为此使用表变量:
DECLARE @Table TABLE (one varchar(100), two varchar(100)
INSERT INTO @TABLE
SELECT one, two from dummytable
与其他变量一样,这将无法从 proc 范围之外访问。
对于大量的行也不好,因为优化器总是假定单行用于执行计划。
【解决方案2】:
SELECT @Value1 = One, @Value2 = two FROM dummyTable;
您在 SQL Server 中没有任何数组。
【解决方案3】:
如果您的查询只返回一行:
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