Microsoft SQL Server(MSSQL)에서 테이블을 복사하는 방법은 여러 가지가 있습니다. 사용하는 방법은 특정 상황, 필요한 데이터, 구조의 보존 여부 등에 따라 달라질 수 있습니다. 다음은 몇 가지 일반적인 방법과 그에 대한 예제입니다:
1. SELECT INTO 문 사용하기
SELECT INTO 문을 사용하여 기존 테이블의 구조와 데이터를 새 테이블로 복사할 수 있습니다. 이 방법은 새 테이블이 아직 존재하지 않을 때 유용합니다.
sql
SELECT *
INTO 새_테이블
FROM 기존_테이블;
예제:
SELECT *
INTO EmployeesCopy
FROM Employees;
2. INSERT INTO SELECT 문 사용하기
기존 테이블의 데이터를 새 테이블에 복사하려면 INSERT INTO SELECT 문을 사용할 수 있습니다. 이 방법은 대상 테이블이 이미 존재하고, 해당 테이블의 구조가 소스 테이블과 일치할 때 유용합니다.
sql
INSERT INTO 새_테이블 (컬럼1, 컬럼2, ...)
SELECT 컬럼1, 컬럼2, ...
FROM 기존_테이블;
예제:
INSERT INTO EmployeesCopy (EmployeeID, Name, Position)
SELECT EmployeeID, Name, Position
FROM Employees;
3. WITH TIES 옵션을 사용하여 TOP N 쿼리 복사
SELECT INTO 문과 함께 TOP N 쿼리와 WITH TIES 옵션을 사용하여, 조건에 따라 상위 N개의 행을 포함하는 새 테이블을 생성할 수 있습니다. 이 옵션은 정렬된 결과에서 상위 N개의 행뿐만 아니라 해당하는 모든 행을 포함시키고 싶을 때 유용합니다.
sql
SELECT TOP (N) WITH TIES *
INTO 새_테이블
FROM 기존_테이블
ORDER BY 정렬_기준;
예제:
SELECT TOP (10) WITH TIES *
INTO TopSalaries
FROM Employees
ORDER BY Salary;
4. 테이블 스키마만 복사하기
테이블의 데이터가 아닌 스키마(구조)만 복사하고 싶을 때는 SELECT INTO 문에 WHERE 1=0 조건을 사용할 수 있습니다. 이렇게 하면 데이터는 복사되지 않고, 스키마만 새 테이블로 복사됩니다.
sql
SELECT *
INTO 새_테이블
FROM 기존_테이블
WHERE 1=0;
예제:
SELECT *
INTO EmployeesSchemaOnly
FROM Employees
WHERE 1=0;
5. BCP 및 SQL Server Integration Services (SSIS)
대량의 데이터를 다룰 때는 BCP (Bulk Copy Program) 명령어나 SQL Server Integration Services (SSIS)와 같은 도구를 사용하여 데이터를 복사하는 것이 더 효율적일 수 있습니다. 이러한 도구는 특히 크고 복잡한 데이터 전송 작업에 적합합니다.
이러한 방법들은 SQL Server에서 테이블을 복사하는 몇 가지 기본적인 방법들입니다. 각 방법은 특정 상황에 따라 그 유용성이 달라지므로, 사용 전에 각 방법의 장단점을 고려하는 것이 좋습니다.
'Program > MSSQL' 카테고리의 다른 글
MSSQL 전체 함수, 저장프로시저 검색 (0) | 2024.04.02 |
---|---|
mssql에서 동일한 테이블에서 원하는 행 복사 (0) | 2024.02.22 |
MSSQL FULL JOIN (0) | 2024.01.31 |
mssql 데이터베이스 bak를 다른이름으로 복원시 원래 데이터베이가 복원중으로 나올때 (0) | 2024.01.22 |
Microsoft SQL Server (MSSQL)의 데이터를 엑셀로 내보내기 (0) | 2024.01.18 |