2012-11-22 3 views
3

나는 330 만 레코드의 테이블을 가지고 있으며 dev에서 prod (클라이언트가 제어하는 ​​시스템의 경우)를 전체적으로 복사하지 않으므로 연결된 서버가 올바르게 작동하지 않을 수 있습니다. .SQL 서버 테이블에서 INSERT 문 생성

이 레코드 중 300 개 정도만 복사하려고합니다. 300 insert 문은 어떻게 생성합니까? 내가의 삽입을 원하는

나의 선택 SQL은 다음과 같습니다 내가 복사하고 생산 상자에서 실행할 수 있도록 모든 인서트를 출력하는 쿼리를 원하는

select * from data where ID > 9000; 

.

답변

-1
insert into dev.data 
select top 300 * from prod.data where ID > 9000; 

또는 당신이 원하는 또는 당신이 귀하의 게시물 SQL-서버 2005 태그 참조

insert into dev.data (col1, col2, col3) 
select top 300 col1, col2, col3 from prod.data where ID > 9000; 
+0

인서트 프린트가 나옵니까? 나는 혼란 스럽다. – cdub

+0

나는 그것을 복사해서 prod.data 테이블에서 실행할 수 있기 때문에 삽입물을 얻고 싶다. – cdub

2

(때문에 자동 증가 컬럼)에있는 경우 열 이름, 그건 너무 나쁜 버전 때문에 2008에는이를위한 마법사 도구가 있습니다.

연결 문자열에서 insert 문을 작성할 수 있습니다.

필드 1이 문자열 인 경우, FIELD2 숫자 :

select 'insert into data (field1, field2) values('' || field1 || '', ' || char(field2) ||');' from data where ID < 9000; 

은 분명히 그 시간을 소모하면 많은 열이있는 경우, 문자열은 따옴표를 필요로 고려 될 수있다. char()을 사용하여 숫자 열을 변환해야 할 수도 있습니다. 이런 당신에게 삽입 문 목록을 제공한다

:

insert into data (field1, field2) values('A', 10); 
insert into data (field1, field2) values('B', 20); 
insert into data (field1, field2) values('C', 30); 

은 어쩌면이 작업을 수행하는 가장 우아한 방법은 아니지만, 그것을 작동합니다.