在存储过程中使用变量

时间:2012-05-09 05:41:46

标签: sql sql-server database stored-procedures

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

2 个答案:

答案 0 :(得分:2)

以下是SQL Server的语法:

DECLARE @UserEmail Varchar(250)
DECLARE @LoginID INT 

SET @UserEmail  = 'a@b.org'

select @LoginID = LoginID from Login L
Where L.UserEmail = @UserEmail

答案 1 :(得分: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;