다음을 통해 공유


데이터 파일 및 서식 파일 사용

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

가장 간단한 대량 복사 프로그램은 다음을 수행합니다.

  1. bcp_init 호출하여 테이블 또는 뷰에서 데이터 파일로 대량 복사(BCP_OUT 설정)를 지정합니다.

  2. bcp_exec 호출하여 대량 복사 작업을 실행합니다.

데이터 파일은 기본 모드에서 만들어지기 때문에 테이블 또는 뷰에서 가져온 모든 열의 데이터는 데이터베이스에서와 동일한 형식으로 데이터 파일에 저장됩니다. 그런 후 다음과 같은 단계를 수행하고 DB_OUT 대신 DB_IN을 설정하여 파일을 서버에 대량 복사할 수 있습니다. 이 작업은 원본 테이블과 대상 테이블의 구조가 정확히 일치하는 경우에만 수행할 수 있습니다. 결과 데이터 파일은 /n(기본 모드) 스위치를 사용하여 bcp 유틸리티에 입력할 수도 있습니다.

테이블 또는 뷰에서 직접 복사하는 대신 Transact-SQL 문의 결과 집합을 대량 복사하려면 다음을 수행합니다.

  1. bcp_init 호출하여 대량 복사를 지정하지만 테이블 이름에 NULL을 지정합니다.

  2. eOption이 BCPHINTS로 설정되고 iValue가 Transact-SQL 문을 포함하는 SQLTCHAR 문자열에 대한 포인터로 설정된 bcp_control 호출합니다.

  3. 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 종료 전 최대 오류 수, 대량 복사를 시작할 파일의 행, 중지할 행 및 일괄 처리 크기와 같은 옵션을 설정합니다.

참고 항목

대량 복사 작업 수행(ODBC)