Azure存储过程的值

时间:2012-11-14 17:32:06

标签: sql database azure azure-sql-database

我一直在尝试在Azure数据库上组装存储过程,当它运行查询时,它会从一个特定列返回一个输出值。

多个结果的可能性为零,因为被查询的表有3列,查询必须为2。然后它从另一个表中获取数据。关键是我需要第一个查询输出值才能开始第二个查询。

目前我有两个程序,我想有一个。

目前查询是这样的:

select 
    customers_catalogs_define.catalog_id 
from 
    customers_catalogs 
left outer join    
    customers_catalogs_define on customers_catalogs.catalog_id = customers_catalogs_define.catalog_id 
where 
    customers_catalogs.catalog_unique_identifier = @catalog_unique 
    AND customers_catalogs_define.customer_id = @customer_id 

当然输出是catalog_id。从那里我把它带入另一个查询,我有实际的列表检索。至少我想添加一行简单说明@catalog_id = output

由于

1 个答案:

答案 0 :(得分:0)

你有两个选择基本上可以做到这一点:

由于我没有看到您的第二个查询,只需确保查询下面列出的正确表格CUSTOMERS_CATALOGS_DEFINE

按照建议使用变量:

DECLARE @CATALOG_ID INT

SET @CATALOG_ID = (
    SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    FROM CUSTOMERS_CATALOGS 
    LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE 
    ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE 
    AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID )

SELECT * 
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID = @CATALOG_ID

第二个选项是在一个查询中执行:

SELECT * 
FROM CUSTOMERS_CATALOGS_DEFINE
WHERE CATALOG_ID IN (
    SELECT CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    FROM CUSTOMERS_CATALOGS 
    LEFT OUTER JOIN CUSTOMERS_CATALOGS_DEFINE 
    ON CUSTOMERS_CATALOGS.CATALOG_ID = CUSTOMERS_CATALOGS_DEFINE.CATALOG_ID 
    WHERE CUSTOMERS_CATALOGS.CATALOG_UNIQUE_IDENTIFIER = @CATALOG_UNIQUE 
    AND CUSTOMERS_CATALOGS_DEFINE.CUSTOMER_ID = @CUSTOMER_ID
)