2015-11-28 43 views
1

我需要從動態SQL達到返回值。我使用sp_executesql作爲字符串執行select查詢。我必須達到結果。這裏是SQL查詢:將動態SQL的字符串值轉換爲SQL Server中的Select查詢

DECLARE @dynsql nvarchar(max) 
SET @dynsql = 'select @InvoiceNo=InvoiceNo from '+ QUOTENAME(@DynDB) +'.[dbo].[TableName] where UserID = '+ 
     cast(@UserID as nvarchar) 
EXEC sp_executesql @dynsql 

問題:這@dynsql是字符串值,我要達到這個SQL查詢的值。

回答

2

最好的解決辦法是:

我們可以增加我們的輸出參數查詢那麼我們就應該添加它來執行這樣的一行:

DECLARE @dynsql nvarchar(max) 
SET @dynsql = 'select @InvoiceNo=InvoiceNo from '+ QUOTENAME(@DynDB) +'.[dbo].[TableName] where UserID = '+ 
     cast(@UserID as nvarchar) 
EXEC sp_executesql @dynsql, N'@InvoiceNo int OUTPUT',@InvoiceNo = @InvoiceNo OUTPUT 
select @InvoiceNo as InvoiceNo 

,其結果是:InvoiceNo = 11111(int value)

相關問題