2014-01-13 90 views
1

我有一個如下查詢,按照需求執行。如何使用動態SQL獲取值

DECLARE @count varchar(20) 
SET @count = (SELECT COUNT(*) FROM emp) 
PRINT 'Employee Count: '[email protected] 
SELECT @count 

但是,如果我想要使用動態SQL,如果我沒有得到我想要的結果一樣。我的動態SQL代碼如下:

DECLARE @count varchar(10) 
DECLARE @sqlQuery varchar(500) 
SET @sqlQuery = 'SET '[email protected] +'= (SELECT COUNT(*) FROM emp)' 
EXEC (@sqlQuery) 
PRINT 'Employee Count: '[email protected] 
SELECT @count 

此代碼給我一個NULL作爲輸出。

應該做什麼?有什麼能幫助我說我哪裏出了問題?

回答

6

嘗試添加的輸出參數 -

DECLARE 
     @SQL NVARCHAR(500) 
    , @OutputNum VARCHAR(10) 

SET @SQL = N'SELECT @OUT = COUNT(1) FROM dbo.emp' 

EXEC sys.sp_executesql 
     @SQL 
    , N'@OUT INT OUTPUT' 
    , @OUT = @OutputNum OUTPUT 

PRINT 'Employee Count: '+ @OutputNum 
SELECT @OutputNum 

輸出 -

Employee Count: 103 
+0

感謝您的回答伴侶......它的工作對我來說。 –

+0

不客氣@Yousuf蘇丹:) – Devart