2017-10-17 3 views
0

동적 SQL에서 오는 테이블에 값을 삽입하려고하면이 작업이 완벽하게 작동합니다.SQL Server : 삽입 할 때 동적 쿼리가 삽입되면 1 삽입 값

INSERT TableName(ColumnName1) EXEC('SELECT '[email protected]+' from kat.[dbo].[History] ') 

그러나이 동적 SQL에 두 개 이상의 값을 삽입하려는 경우 더 이상 작동하지 않습니다.

INSERT TableName(ColumnName1, ColumnName2) EXEC('SELECT '[email protected]+' from kat.[dbo].[History] '), datum from kat.[dbo].[History] . 

왜 그럴까요? 사전에

월 감사,

답변

1

첫 번째 문은 동적 SQL은 테이블에 삽입되는 하나의 별개의 결과 집합을 반환합니다. 두 번째 성명서, 당신이 그것을 칼럼처럼 다루는 것, 그렇지 않은 칼럼. 동일한 테이블을 사용하고 있으므로 동적 SQL 내에 datum을 포함하거나

+0

안녕 Xedni, 답변 주셔서 감사합니다. INSERT TableName (ColumnName1, ColumnName2) EXEC ('SELECT'+ @ ColumnName + ', kat. [dbo].의 데이터) – Katherine99

+0

그건 내 생각이었습니다. – Xedni

+0

안녕하세요, 고마워요. 두 컬럼이 같은 테이블에 있기 때문에 올바르게 작동합니다. 다른 테이블이나 상수, concats 등의 서로 다른 동적 쿼리를 결합하려는 경우 문제가 발생합니다. – Katherine99