"직접 인쇄 명령의 출력을 캡처하는 방법"이라는 직접적인 질문에 대한 답을 찾기 위해 여기에 왔지만 이전 대답을 확장하고 싶습니다.
당신이 세트 명령
SET @sqlCommand = @sqlCommand + @newPart;
그것은 불행하지만 SQLSERVER 내가 최대 크기를 초과했습니다 생각하기 때문에 가끔 문제로 실행에 조각을 연결할 수있는 여러 인쇄 문을 사용하여 SQL 명령을 구축하는 경우 내가 없을 때 @ sqlCommand에 대한. 이 도움이
EXEC (
'MERGE ' + @targetTable + ' t ' +
'USING ' + @sourceTable + ' s ' +
'ON ' + @keycondition + ' ' +
'WHEN MATCHED AND ' + @updateCondition + ' THEN ' +
'UPDATE SET ' + @updateColumns + ' ' +
'WHEN NOT MATCHED BY TARGET THEN ' +
'INSERT (' + @insertTargetColumns + ') ' +
'VALUES (' + @insertSourceColumns + ') ' +
'WHEN NOT MATCHED BY SOURCE THEN '
'UPDATE SET deleteFlag = ''D'', updDtTm = GETDATE()'
)
희망 : 나는 종종 다음과 같이 exec 명령에서 그들을 연결하여, 어쨌든 같은 조각의 대안 콘텐츠를 필요로 별도로 조각을 들고이 문제를 피해갑니다. 스냅 샷에서 증분 업데이트로 옮겨 가고 있으므로 sourceTable에 deleteFlag가 있고 마지막 절을 사용하지 않습니다.
Print 문을 사용해야하는 경우 어떻게해야합니까? 테이블 에서뿐만 아니라 다른 SQL 쿼리를 만드는 출력 문자열을 선택하지 않습니다. –
그럴 필요가 있다면, 그 자리에 서게해서 죄송합니다. 나는 print 서술에서 데이터를 추출하는 경험이 없다. –
정말 슬픈 일입니다. –