2013-01-06 120 views
0

如何在Sql Server中爲SELECT變量賦值一個變量?爲變量賦值select語句的結果

這裏是我的嘗試:轉換VARCHAR值 '設置' 數據 int類型時

CREATE PROCEDURE x 
AS 
BEGIN 

DECLARE @MyVar integer 
DECLARE @sql nvarchar(150), @v nvarchar(50) 
Set @v = 'mytable' 
--SET @sql = 'SELECT INTO ' + @MyVar + 'count(*) FROM ' + @v 
SET @sql = 'Set ' + @MyVar + '= SELECT count(*) FROM ' + @v 
EXEC sp_executesql @sql 
print @MyVar 
END 

轉換失敗。

任何有關學習語法的建議都會很有用。謝謝!

回答

3

您可以使用OUTPUT參數sp_executesql如下。

DECLARE @MyVar INTEGER 
DECLARE @sql NVARCHAR(MAX), 
     @v SYSNAME 

SET @v = N'mytable' 
SET @sql = N'SELECT @MyVar = count(*) FROM ' + QUOTENAME(@v) 

EXEC sp_executesql 
    @sql, 
    N'@MyVar INT OUTPUT', 
    @MyVar = @MyVar OUTPUT 

PRINT @MyVar 

RE:「學習語法的建議:」我真的沒有比books online一個其他的,但你應該閱讀The Curse and Blessings of Dynamic SQL明白爲什麼QUOTENAME是很重要的。

相關問題