2017-11-13 1 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에 설정된 매개 변수와 다릅니다.