【问题标题】:Using variables in stored procedures在存储过程中使用变量
【发布时间】:2012-05-09 05:41:45
【问题描述】:

我正在使用 Microsoft SQL 服务器并编写一个包含许多选择语句的存储过程。在这里,我想要两个变量来保存两个 select 语句的结果,并且我想添加这两个变量以获得最终结果。请帮我这样做(语法和示例)。

【问题讨论】:

    标签: sql sql-server database stored-procedures


    【解决方案1】:

    以下是 SQL Server 的语法:

    DECLARE @UserEmail Varchar(250)
    DECLARE @LoginID INT 
    
    SET @UserEmail  = 'a@b.org'
    
    select @LoginID = LoginID from Login L
    Where L.UserEmail = @UserEmail
    

    【讨论】:

      【解决方案2】:

      您应该澄清您正在使用哪个数据库。在 MS SQL Server 中,您可以像这样使用临时表变量:

      BEGIN
      
      SELECT product_id,product_name INTO #temp1 FROM products;
      
      SELECT product_id,product_name INTO #temp2 FROM products;
      
      SELECT * FROM #temp1
      UNION 
      SELECT * FROM #temp2;
      
      END
      

      MS SQL Server 中的临时表变量有多种类型,我使用过其中的一种。想了解更多,请在网页中搜索“MS SQL Server 临时表”。

      编辑: 这是另一个在 MS SQL Server 中使用另一种类型的临时表变量的示例。

      DECLARE @temp1 TABLE (product_id INT,product_name VARCHAR(100));
      
          DECLARE @temp2 TABLE (product_id INT,product_name VARCHAR(100));
      
          INSERT INTO @temp1 SELECT product_id,product_name FROM products WHERE cat_id=1;
      
          INSERT INTO @temp2 SELECT product_id,product_name FROM products WHERE cat_id=2;
      
          SELECT product_id,product_name
          FROM @temp1
          UNION
          SELECT product_id,product_name
          FROM @temp2;
      

      【讨论】:

      • 我正在使用微软 SQL 服务器
      • 那个 sql 查询是针对 MS SQL Server 的。 #temp1,#temp2 是存储两个 sql 语句结果集的 2 个临时表变量。你不明白那个 sql 查询吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多