簡體   English   中英

使用存儲過程在SQL Server中執行結果

[英]Execute a result in SQL Server using a stored procedure

我需要執行SQL查詢的結果(已經以SQL的形式)本身以獲得最終結果。

因此,應該像在我執行的第一個查詢中

Select Top(1) RequiredQuery as ReqQry from EPMaster 

我將在ReqQry結果中得到另一個查詢,然后以另一個查詢的形式執行以獲得最終結果。

第二個查詢也將需要在where子句中傳遞一些參數,例如當我這樣做時:

Select Top(1) RequiredQuery as ReqQry 
from EPMaster 
--ReqQry after its execution returns:
Select Top(1) (FirstName + ' ' + LastName) as FullName 
from DPMaster 
where DmID = @DomainID and PnID = @PersonID

我將從我的C#項目的DAL層傳遞Params @DomainID@PersonID

所以我想應該在存儲過程的幫助下完成它。

-----------------更多說明-------------

在這里,執行一條SQL語句以獲得下一條SQL語句,該語句將是前一條語句的結果。 當您執行第一個查詢時,您將得到第二個查詢,然后再次執行以獲取最終結果

第二個查詢需要2個參數來執行,它們是@DomainID@PersonID ,它們將由我從我的C#項目中傳遞。 因此,如果我創建了一個存儲過程來處理所有這些並傳遞所需的參數以及我項目中的第一個查詢,則它應該首先執行第一個查詢,然后執行第二個查詢(帶有參數PersonIDDomainID ),該查詢作為第一個查詢的結果,然后得到最終結果。

您應該使用Dynamic SQL來運行從第一個過程/查詢返回的nvarchar(max)查詢字符串。

編輯:

DECLARE @ResultOfTheFirstQuery nvarchar(max)

SELECT @ResultOfTheFirstQuery = (Select Top(1)RequiredQuery 
                                 as ReqQry from EPMaster)

exec sp_executeSql @ResultOfTheFirstQuery

或者,如果您需要復雜的邏輯,則可以編寫另一個SP,該SP可以包含一個返回值:

DECLARE @ResultOfTheFirstQuery nvarchar(max)

SELECT @ResultOfTheFirstQuery = FirstStoredprocedure @params

exec sp_executeSql @ResultOfTheFirstQuery

這是一個已經得到很好回答的問題,如何獲得參數收益。 您可以使用RETURNOUTPUT參數。

這是如何使用sp_executeSql

Declare @SQL as nvarchar(MAX);
SET @SQL = (Select Top(1)RequiredQuery as ReqQry from EPMaster);
EXEC (@SQL);

暫無
暫無

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

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