2012-12-07 2 views
2

59 열이 포함 된 테이블 Table1이 있습니다. Table2은 여분의 열이 하나 인 Table1의 사본으로 끝 부분에 COLUMN 60입니다. 따라서 table2에는 60 개의 열이 있습니다. table2SQL : SELECT를 사용하여 여분의 열이있는 테이블에 데이터 삽입

내가 table1의 값을 복사하려고하고 table2의 추가 열 설정 값 "값"이 같은

뭔가에

INSERT INTO Table2 
    SELECT * FROM Table1, 'value' AS 'COLUMN 60' 

내가 어떻게 할 수 있습니까? 위의 코드를 사용하면 오류가 발생합니다.

An explicit value for the identity column in table 'TableLocation' can only be specified when a column list is used and IDENTITY_INSERT is ON.

너무 많은 열 이름이 있으므로 열 이름을 지정하고 싶지 않습니다.

+1

모든 열을 사용할 수없는 경우 열 중 하나가'IDENTITY' 열이기 때문에 (''* 선택) - 다음 ** 필수 ** 지정 ** 당신에 삽입 할 모든 ** 열 'table1' ....에서 선택하고 싶습니다. (어쨌든 ** 항상 삽입하고 선택할 열을 명시 적으로 ** 명시 적으로 지정하는 것이 더 좋습니다!) –

답변

8

이 시도 :

SET IDENTITY_INSERT dbo.Table2 ON 

INSERT INTO Table2 
SELECT *, 'value' AS 'COLUMN 60' FROM Table1 

SET IDENTITY_INSERT dbo.Table2 OFF 
+0

이 동일한 오류를 시도했지만 동일한 오류 – jpo

+0

은 *, '값'부터 dbo.Table1 .... '?? 추가 표가 아닌 ** ** 열을 추가로 선택하고 싶습니다. ... –

+1

@marc_s - OP의 질문에서 잘라내어 붙여 넣기했으나 동의 한 것으로 수정했습니다. –

3

당신이 바로 SSMS에서 열 이름을 끌 수 있다는 것을 알고? 당신이 다음

SET IDENTITY_INSERT dbo.Table2 ON 

--INSERT HERE 
-- make sure to list all the columns, it is required 

SET IDENTITY_INSERT dbo.Table2 OFF 
0

그것이 정말 필요합니까 사용하는 ID 값을 유지하려면 테이블로 이동 한 후 열이 쿼리 창에 폴더 드래그, 그것은 이제

에 대한 모든 열을 나열합니다 한 문장으로 끝나야합니까?

INSERT INTO Table2 
SELECT * FROM Table1 

ALTER TABLE Table2 
ADD Column60 varchar 
+0

나는 이미 존재하는 여분의 열의 값을 잃어 버리기 때문에 전체 table2를 다시 만들고 싶지 않다. – jpo

+0

아, table2의 기존 데이터에 추가하려고한다는 것을 몰랐다. 죄송합니다. – nullrevolution

관련 문제