![](/img/trans.png)
[英]Calling one stored procedure within another stored procedure using variables from first stored procedure
[英]Stored Procedure calling variables from table
我有一個使用變量ID的存儲過程,在表中有一個有效ID的列表。
我正在嘗試編寫一個存儲過程,如果該ID存在於表中,則該存儲過程將運行一段特定的代碼。 我只是不確定語法。
以下是我要執行的操作的偽代碼。
IF
@ID = possible id IN (SELECT DISTINCT ID FROM [dbo].ID_TABLE WHERE ID = 'valid')
SELECT * FROM dbo.[results]
ELSE
SELECT * FROM dbo.[otherresults]
我正在使用SQL Server
通常,在這種情況下,您將使用EXISTS
; 如...
IF EXISTS (SELECT * FROM ID_TABLE WHERE ID = @ID)
盡管@ID IN (SELECT DISTINCT
可以工作,但該查詢需要遍歷表數據以組裝結果集,然后檢查結果是否包含@ID。EXISTS查詢不會創建結果集,而是在符合條件的第一行提早返回。
如果您的查詢
SELECT DISTINCT ID FROM [dbo].ID_TABLE WHERE ID = 'valid'
總是只返回一個id,那么下面的解決方案就足夠了
@ID = (SELECT DISTINCT ID FROM [dbo].ID_TABLE WHERE ID = 'valid')
如果返回ID列表,則需要創建一個臨時表並存儲這些ID,如下所示
create table #temp_table(id int)
insert into #temp_table SELECT DISTINCT ID FROM [dbo].ID_TABLE WHERE ID = 'valid'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.