데이터 파일 및 서식 파일 사용
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
가장 간단한 대량 복사 프로그램은 다음을 수행합니다.
데이터 파일은 기본 모드에서 만들어지기 때문에 테이블 또는 뷰에서 가져온 모든 열의 데이터는 데이터베이스에서와 동일한 형식으로 데이터 파일에 저장됩니다. 그런 후 다음과 같은 단계를 수행하고 DB_OUT 대신 DB_IN을 설정하여 파일을 서버에 대량 복사할 수 있습니다. 이 작업은 원본 테이블과 대상 테이블의 구조가 정확히 일치하는 경우에만 수행할 수 있습니다. 결과 데이터 파일은 /n(기본 모드) 스위치를 사용하여 bcp 유틸리티에 입력할 수도 있습니다.
테이블 또는 뷰에서 직접 복사하는 대신 Transact-SQL 문의 결과 집합을 대량 복사하려면 다음을 수행합니다.
bcp_init 호출하여 대량 복사를 지정하지만 테이블 이름에 NULL을 지정합니다.
eOption이 BCPHINTS로 설정되고 iValue가 Transact-SQL 문을 포함하는 SQLTCHAR 문자열에 대한 포인터로 설정된 bcp_control 호출합니다.
bcp_exec 호출하여 대량 복사 작업을 실행합니다.
Transact-SQL 문은 결과 집합을 생성하는 모든 문일 수 있습니다. Transact-SQL 문의 첫 번째 결과 집합을 포함하는 데이터 파일이 만들어집니다. Transact-SQL 문이 여러 결과 집합을 생성하는 경우 대량 복사는 첫 번째 결과 집합 이후의 결과 집합을 무시합니다.
열 데이터가 테이블과 다른 형식으로 저장되는 데이터 파일을 만들려면 bcp_columns 호출하여 변경할 열 수를 지정한 다음, 형식을 변경할 각 열에 대해 bcp_colfmt 호출합니다. 이 작업은 bcp_init 호출한 후 bcp_exec 호출하기 전에 수행됩니다. bcp_colfmt 열의 데이터가 데이터 파일에 저장되는 형식을 지정합니다. 대량 복사 또는 출력 시 사용할 수 있습니다. bcp_colfmt 사용하여 행 및 열 종결자를 설정할 수도 있습니다. 예를 들어 데이터에 탭 문자가 없는 경우 bcp_colfmt 사용하여 탭으로 구분된 파일을 만들어 탭 문자를 각 열의 종결자로 설정할 수 있습니다.
bcp_colfmt 대량 복사하고 사용하는 경우 bcp_colfmt 마지막 호출 후 bcp_writefmt 호출하여 만든 데이터 파일을 설명하는 서식 파일을 쉽게 만들 수 있습니다.
서식 파일로 설명된 데이터 파일에서 대량 복사하는 경우 bcp_init 후 bcp_exec 전에 bcp_readfmt 호출하여 서식 파일을 읽습니다.
bcp_control 함수는 데이터 파일에서 SQL Server로 대량 복사할 때 몇 가지 옵션을 제어합니다. bcp_control 종료 전 최대 오류 수, 대량 복사를 시작할 파일의 행, 중지할 행 및 일괄 처리 크기와 같은 옵션을 설정합니다.