2012-11-19 117 views
2

動態傳遞列名&值並將查詢結果存入另一個變量。動態sql查詢輸入輸出值傳入變量

@ColumnName , @SKU_ID are input variables, output data store into @ColumnValue variable. 
DECLARE @ColumnName 
char(50) 
DECLARE @SKU_ID 
varchar(50) 
DECLARE @ColumnValue 
varchar(150) 
DECLARE @Sqlcommand 
nvarchar(1000) 
DECLARE @ColumnData 
varchar(50) 

SET @ColumnName = 'Color_Code' 
SET @SKU_ID = 'W16933' 

SET @Sqlcommand = 'SELECT @ColumnData ='[email protected]+ 'FROM Stagetable WHERE SKU_ID = @SKU_ID' 
exec sp_executesql @Sqlcommand, N'ColumnData varchar(50) out' , @ColumnValue out 

我得到以下錯誤

消息102,級別15,狀態1,行1 附近有語法錯誤ColumnData「。 消息137,級別15,狀態1,行1 必須聲明標量變量「@ColumnData」。 請幫我一把。

回答

1

你需要用@

exec sp_executesql 
    @Sqlcommand, 
    N'@ColumnData varchar(50) out, @SKU_ID varchar(50)' , 
    @ColumnValue out, @SKU_ID 
前綴的變量聲明