데이터베이스 DB에 ABC 테이블이 있습니다. 동일한 DB에 이름이 ABC_1, ABC_2, ABC_3 인 ABC의 복사본을 만들고 싶습니다. Management Studio (권장) 또는 SQL 쿼리를 사용하여 어떻게 할 수 있습니까?
SQL Server 2008 R2 용입니다.
답변
사용 SELECT ... INTO
:
SELECT *
INTO ABC_1
FROM ABC;
이렇게하면 ABC_1
열 구조 ABC
가 같고 동일한 데이터를 포함 하는 새 테이블이 생성 됩니다. 그러나 제약 조건 (예 : 키, 기본값)은 복사되지 않습니다.
매번 다른 테이블 이름으로이 쿼리를 여러 번 실행할 수 있습니다.
데이터를 복사 할 필요가없는 경우 동일한 열 구조로 새 빈 테이블을 생성 WHERE
하기 위해서만 허위 표현식이 있는 절을 추가합니다 .
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
답변
SSMS UI를 통한 스키마 복사 (DDL 생성)
SSMS에서 개체 탐색기 에서 데이터베이스를 확장하고 테이블 로 이동하여 관심있는 테이블을 마우스 오른쪽 단추로 클릭하고 다음으로 스크립트 테이블 , 만들기 대상 , 새 쿼리 편집기 창을 선택 합니다. 검색 (find)를하고 (대체 CTRL + H를 (넣어 즉 테이블 이름을 변경) ABC
에 어떤 찾기 필드 ABC_1
에 바꿀 클릭 한 다음 확인을 ).
T-SQL을 통해 스키마 복사
SQL로 이것을 수행하는 방법을 보여주는 다른 답변도 잘 작동하지만이 방법의 차이점은 인덱스, 제약 조건 및 트리거도 얻을 수 있다는 것입니다.
데이터 복사
데이터를 포함하려면이 테이블을 만든 후 아래 스크립트를 실행하여 ABC의 모든 데이터를 복사합니다 (ID 필드가있는 경우 동일한 ID 값 유지).
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
답변
모든 제약 조건 및 키를 사용하여 테이블을 복제하려면 다음 단계를 따르십시오.
- SQL Management Studio에서 데이터베이스를 엽니 다.
- 복제하려는 테이블을 마우스 오른쪽 버튼으로 클릭합니다.
- 스크립트 테이블을-> 만들기 대상-> 새 쿼리 편집기 창으로 선택합니다. 그러면 새 쿼리 창에서 테이블을 다시 만드는 스크립트가 생성됩니다.
- 스크립트에서 테이블 이름과 상대 키 및 제약 조건을 변경합니다.
- 스크립트를 실행하십시오.
그런 다음 데이터를 복사하려면 아래 스크립트를 실행하십시오.
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
답변
첫 번째 옵션
select *
into ABC_1
from ABC;
두 번째 옵션 : SSIS 사용, 즉 개체 탐색기에서 데이터베이스를 마우스 오른쪽 버튼으로 클릭> 모든 작업> 데이터 내보내기
- 소스 및 대상 : DB
- 소스 테이블 : ABC
- 대상 테이블 : ABC_1 (테이블이 생성됨)
답변
이것은 또 다른 옵션입니다.
select top 0 * into <new_table> from <original_table>
답변
SQL Server manegement Studio 또는 netcat을 사용하면 SQL을 조작하기가 더 쉽습니다.
답변
테이블과 해당 데이터, 제약 조건 및 트리거를 복사하려면 SSIS를 작성해야합니다. 우리 조직에는 무료 버전을 다운로드 할 수있는 kalrom Systems의 Kal Admin이라는 소프트웨어가 있습니다 (표 복사 기능은 선택 사항이라고 생각합니다)
