【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 2013-06-22
      • 1970-01-01
      相关资源
      最近更新 更多