2011-01-21 9 views
3

여러 개의 열이있는 테이블이 있습니다.행을 복사 할 때 SQL 도움말이 필요합니다.

ID가 int 데이터 유형이고 외래 키가없는 기본 키가 하나 있습니다. 이 PK는 증분과 시드가 모두 1로 설정된 Identity Specification으로 설정됩니다. 복제가 아닌 경우 Yes로 설정됩니다. 중요한 두 개의 다른 행이 있습니다. 데이터의 연도와 복사 할 행을 구체적으로 선택하기 위해 사용할 참조 번호입니다.

SQL 또는 SQL과 C# 조합을 사용하여 참조 번호별로 특정 행 집합을 복사하고 각 행에 고유 한 기본 키 ID를 단독으로 할당하는 방법이 있습니까? 복사 할 행 수는 매번 다를 수 있으므로 유연해야합니다. 시스템에서 더 이상 문제없이 ID를 선택하거나 최대 ID를 얻고 복사 한 행마다 하나씩 증가시킵니다. 또한 칼럼에 새해를 넣을 것입니다. 그러나이 유형의 열에 대한 SQL 문을 통해 각 행에 대해 기본 키 ID를 자체적으로 설정해야하는 주된 문제와 비교하면 충분히 쉽습니다. ...

Please 도움! 나는 총 SQL 초보자는 아니지만 나는 여전히 배우고 있으며, 복제에 대한 특정 Not Not 문제로이 유형의 문제를 경험하지 못했습니다.

+0

씨 = 1 수단은 1로 시작이 증가는 각 값을 1 씩 증가시켜야 함을 의미합니다. – JeffO

답변

2

기본 키 (ID 열을 선택하지 제외)과 같은 테이블에 다시 삽입 원하는 행을 선택 할 수있는 ID 열이므로 :

INSERT INTO table1 (col1, col2, col3) 
SELECT (col1, col2, col3) FROM table1 
WHERE .... 
+0

이미 시도 했으므로 작동하지 않습니다. 해당 테이블의 Identity_insert를 설정 한 후 코드에서 ... 다음을 사용하여이 오류가 발생합니다. 명시 적 값 IDENTITY_INSERT가 ON으로 설정된 경우 또는 복제 사용자가 NOT FOR REPLICATION ID 열에 삽입 할 때 테이블 '테이블'의 ID 열에 대해 지정해야합니다. –

+0

Welp 나는 바보 야. 우리가 간다. 나는 실제로 오류를 읽었다. ... 작품 ... 나는 다른 사람들이 나를 비웃을 수 있도록 그 의견을 남긴다. –

관련 문제