2012-11-05 6 views
81

SQL Server에서 동일한 스키마를 사용하여 한 테이블의 데이터를 다른 테이블로 복사/추가하는 방법은 무엇입니까?다른 테이블로 데이터 복사

편집 : 내가 쿼리

table2에서와 동일한 스키마뿐만 아니라 데이터 table1를 생성
select * 
into table1 
from table2 
where 1=1 

이 말을 의미

.

전체 데이터를 기존 테이블로만 복사하는 것과 같은 간단한 쿼리가 있습니까?

+0

어떻게 해결할 수 있습니까? INSERT INTO newTable (col1, col2, col3, col4) values ​​ ((column1, column2, column3 FROM oldTable where 조건), 'string'); –

답변

190

을 두 테이블이 진정으로 동일한 스키마 경우 : 그렇지 않으면

INSERT INTO newTable 
SELECT * FROM oldTable 

, 당신은 열 이름을 지정해야합니다 (newTable에 대한 열 목록의 경우 선택 사항입니다 모든 열에 대해 값을 지정하고 newTable의 스키마와 동일한 순서로 열을 선택하는 것입니다.

INSERT INTO newTable (col1, col2, col3) 
SELECT column1, column2, column3 
FROM oldTable 
,210
+0

어떤 열에 대해 '빈 데이터'를 입력하고 싶습니다. ?? – BNN

+2

@coder 그것은 단지 select 절일 뿐이므로 명백한'NULL's, 문자열 상수, 표현식 또는 하위 쿼리를 포함하여 원하는 내용을 넣을 수 있습니다. –

+0

새 테이블이 이미 존재해야합니다. –

7

이 시도 :

INSERT INTO MyTable1 (Col1, Col2, Col4) 
    SELECT Col1, Col2, Col3 FROM MyTable2 
9

이 할 수있는 적절한 방법은 다음과 같습니다

INSERT INTO destinationTable 
SELECT * FROM sourceTable 
+0

고마워, 이건 내가 원하는 방식으로 테이블에서 다른 테이블로 데이터를 복사하지만 DB는 다릅니다. 매우 고마워 – sushu

4

이 시도 :

Insert Into table2 
Select * from table1 
8
INSERT INTO table1 (col1, col2, col3) 
SELECT column1, column2, column3 
FROM table2           
-5
select col1,col2,col3 into table2 
from table 1 
+1

심지어 그것은 올바른 SQL 문도 아니다. – Liquidpie

2
INSERT INTO DestinationTable(SupplierName, Country) 
SELECT SupplierName, Country FROM SourceTable; 

이 아닌 필수 열 이름이 동일해야하는 것입니다.

1

이 명령은 테이블의 인덱스와 트리거를 복사하지 않도록주의하십시오. 복사 인덱스에 대한 다음 게시물을 참조 및 스크립트 트리거 : 새 테이블이 존재하지 않는 경우 Programmatically copy indexes from one table to another in SQL Server

+0

이것은 정말로 논평이 아니라 대답이다. 조금 더 많은 담당자와 함께 [주석을 게시 할 수 있습니다] (// stackoverflow.com/privileges/comment). 잠시 동안 나는 당신을 위해 덧글을 추가했습니다. 나는 삭제를 위해이 게시물에 플래그를 지정하고 있습니다. – LaurentY

1

간단한 방법을 당신은 SQL Server의 모든 것을 다음 다음 작품 이전 테이블의 복사본을 만들고 싶어.

SELECT * INTO NewTable FROM OldTable 
관련 문제