데이터 파일 및 서식 파일 사용
가장 간단한 대량 복사 프로그램은 다음을 수행합니다.
데이터 파일은 기본 모드에서 만들어지기 때문에 테이블 또는 뷰에서 가져온 모든 열의 데이터는 데이터베이스에서와 동일한 형식으로 데이터 파일에 저장됩니다. 그런 후 다음과 같은 단계를 수행하고 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 문을 실행하여 결과 집합이 여러 개 생성될 경우(예: COMPUTE 또는 COMPUTE BY를 포함하는 경우), 첫 번째 결과 집합 다음의 결과 집합은 모두 무시됩니다.
열 데이터가 테이블에서와는 다른 형식으로 저장되는 데이터 파일을 생성하려면 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은 종료되기 전의 최대 오류 개수, 파일에서 대량 복사를 시작할 행, 대량 복사를 종료할 행, 일괄 처리 크기 등의 옵션을 설정합니다.