簡體   English   中英

Azure存儲過程的價值

[英]Azure stored procedure out value

我一直試圖在我的Azure數據庫上組裝一個存儲過程,當它運行查詢時,它從一個特定列返回一個輸出值。

由於要查詢的表有3列,所以多個結果的可能性為零,查詢必須達到2。然后,它從另一個表中獲取數據。 關鍵是我需要第一個查詢輸出值才能開始第二個查詢。

目前我有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

謝謝

基本上,您有兩種選擇可以進行這項工作:

由於我沒有看到您的第二個查詢,因此只需確保其查詢下面列出的正確表為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
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM