2017-11-13 8 views
3

動的SQLを使用してパラメータを設定しようとしていましたが、毎回NULLを返しています。私のコードの基本的なバージョンをコピーしたものの下に、誰かが私がやりたいことをどうやってやるのかアドバイスすることができます。動的SQLを使用したパラメータの設定

DECLARE 
@SQL_Prev_Values nvarchar(max), 
@Value nchar(100), 
@Prev_Values varchar(150) =' ' 

SET @Value = 'dave' 

SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+'''' 
SELECT @SQL_Prev_Values 
EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out 
SELECT @Prev_Values 
SET @Prev_Values = @Prev_Values + 'dave' 
SELECT @Prev_Values 

私はオンラインで物事を見てきましたが、私には分かりません。 ご協力いただければ幸いです。 ありがとうございます。

答えて

4

あなたが画面からわかるように、テンプレートは完全に働いている、以下のショット:出力の値

DECLARE 
@SQL_Prev_Values nvarchar(max), 
@Value nchar(100), 
@Prev_Values varchar(150) =' ' 

SET @Value = 'dave' 

SET @SQL_Prev_Values = 'SET @Prev_Values = @Prev_Values + ''' + REPLACE(@Value,' ' ,'')+'''' 
SELECT @SQL_Prev_Values 

EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values varchar(150) out',@Prev_Values out 
SELECT @Prev_Values 

DECLARE @Prev_Values nchar; 
DECLARE @SQL_Prev_Values NVARCHAR(MAX); 

SET @SQL_Prev_Values = N'SET @Prev_Values = 1;' 

EXEC sp_executesql @SQL_Prev_values,N'@Prev_Values nchar out',@Prev_Values out 

SELECT @Prev_Values; 

enter image description here


はこれを試してみてくださいパラメータは、sp_executesqlに設定されたパラメータとは異なります。

関連する問題