대량 내보내기 또는 가져오기를 위한 데이터 준비(SQL Server)Prepare Data for Bulk Export or Import (SQL Server)

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

이 섹션에서는 대량 내보내기 작업을 계획하는 방법과 관련된 고려 사항 및 대량 가져오기 작업의 요구 사항에 대해 설명합니다.This section discusses the considerations involved in planning for bulk-export operations and the requirements for bulk-import operations.

참고

대량 가져오기를 위해 데이터 파일의 형식을 지정하는 방법을 모르는 경우 bcp 유틸리티를 사용하여 테이블에서 데이터 파일로 데이터를 내보낼 수 있습니다.If you are uncertain about how to format a data file for bulk importing, use the bcp utility to export data from the table into a data file. 이 파일에 있는 각 데이터 필드의 서식은 데이터를 해당 테이블 열에 대량으로 가져오는 데 필요한 서식을 보여 줍니다.The formatting of each data field in this file shows the formatting required to bulk import data into the corresponding table column. 데이터 파일의 필드에 대해 같은 데이터 서식을 사용합니다.Use the same data formatting for fields of your data file.

대량 내보내기의 데이터 파일 형식 고려 사항Data-File Format Considerations for Bulk Export

bcp 명령을 사용하여 대량 내보내기 작업을 수행하기 전에 다음 사항을 고려하세요.Before you perform a bulk-export operation by using the bcp command, consider the following:

  • 데이터를 파일로 내보낼 때 bcp 명령은 지정된 파일 이름을 사용하여 자동으로 데이터 파일을 만듭니다.When data is exported to a file, the bcp command creates the data file automatically by using the specified file name. 해당 파일이 이미 사용되고 있으면 데이터 파일로 대량 복사되는 데이터가 파일의 기존 내용을 덮어씁니다.If that file name is already in use, the data that is being bulk copied to the data file overwrites the existing contents of the file.

  • 테이블 또는 뷰에서 데이터 파일로 대량 내보내기를 수행하려면 대량 복사할 테이블 또는 뷰에 대한 SELECT 권한이 있어야 합니다.Bulk export from a table or view to a data file requires SELECT permission on the table or view that is being bulk copied.

  • MicrosoftMicrosoft SQL ServerSQL Server 에서는 병렬 검색을 사용하여 데이터를 검색할 수 있습니다. can use parallel scans to retrieve data. 따라서 SQL ServerSQL Server 인스턴스에서 대량으로 내보내는 테이블 행은 대개 데이터 파일에 특정 순서로 정렬되지 않을 수도 있습니다.Therefore, the table rows that are bulk exported in from an instance of SQL ServerSQL Server are not ordinarily guaranteed to be in any specific order in the data file. 대량으로 내보낸 테이블 행이 데이터 파일에 특정 순서로 표시되도록 하려면 쿼리에서 대량으로 내보내는 queryout 옵션을 사용하고 ORDER BY 절을 지정합니다.To make bulk-exported table rows appear in a specific order in the data file, use the queryout option to bulk export from a query, and specify an ORDER BY clause.

대량 가져오기의 데이터 파일 형식 요구 사항Data-File Format Requirements for Bulk Import

데이터 파일에서 데이터를 가져오려면 해당 파일은 다음과 같은 기본 요구 사항을 충족해야 합니다.To import data from a data file, the file must meet the following basic requirements:

  • 데이터는 행 및 열 형식이어야 합니다.The data must be in row and column format.
참고

대량 가져오기 프로세스 동안 열을 건너뛰거나 다시 정렬할 수 있으므로 데이터 파일 구조는 SQL ServerSQL Server 테이블 구조와 동일할 필요가 없습니다.The structure of the data file does not need to be identical to the structure of the SQL ServerSQL Server table because columns can be skipped or reordered during the bulk-import process.

  • 데이터 파일의 데이터는 문자 또는 네이티브 형식 같이 지원되는 형식이어야 합니다.The data in the data file must be in a supported format such as character or native format.

  • 데이터는 문자 또는 유니코드 같은 네이티브 이진 형식일 수 있습니다.The data can be in character or native binary format including Unicode.

  • bcp 명령, BULK INSERT 문 또는 INSERT ... SELECT * FROM OPENROWSET(BULK...) 문을 사용하여 데이터를 가져오려면 대상 테이블이 이미 존재해야 합니다.To import data by using a bcp command, BULK INSERT statement, or INSERT ... SELECT * FROM OPENROWSET(BULK...) statement, the destination table must already exist.

  • 데이터 파일의 각 필드는 대상 테이블의 해당 열과 호환 가능해야 합니다.Each field in the data file must be compatible with the corresponding column in the target table. 예를 들어 int 필드는 datetime 열로 로드할 수 없습니다.For example, an int field cannot be loaded into a datetime column. 자세한 내용은 대량 가져오기 또는 대량 내보내기를 위한 데이터 형식(SQL Server)bcp를 사용하여 데이터 형식을 호환 가능하도록 지정(SQL Server)을 참조하세요.For more information, see Data Formats for Bulk Import or Bulk Export (SQL Server) and Specify Data Formats for Compatibility when Using bcp (SQL Server).

    참고

    전체 파일이 아니라 데이터 파일에서 가져올 행의 하위 집합을 지정하려면 -F first_row 스위치 및/또는 -L last_row 스위치와 함께 bcp 명령을 사용할 수 있습니다.To specify a subset of rows to import from a data file rather than the entire file, you can use a bcp command with the -F first_row switch and/or -L last_row switch. 자세한 내용은 bcp Utility를 참조하세요.For more information, see bcp Utility.

  • 고정 길이 또는 고정 너비 필드가 있는 데이터 파일에서 데이터를 가져오려면 서식 파일을 사용합니다.To import data from data files with fixed-length or fixed-width fields, use a format file. 자세한 내용은 XML 서식 파일(SQL Server)을 참조하세요.For more information, see XML Format Files (SQL Server).

  • CSV(쉼표로 구분된 값) 파일은 SQL ServerSQL Server 대량 가져오기 작업에서 지원되지 않습니다.Comma-separated value (CSV) files are not supported by SQL ServerSQL Server bulk-import operations. 그러나 경우에 따라 데이터를 SQL ServerSQL Server로 대량으로 가져오기 위한 데이터 파일로 CSV(쉼표로 구분된 값) 파일이 사용될 수 있습니다.However, in some cases, a CSV file can be used as the data file for a bulk import of data into SQL ServerSQL Server. CSV 파일의 필드 종결자로는 쉼표 이외에 다른 문자도 사용될 수 있습니다.Note that the field terminator of a CSV file does not have to be a comma. 대량 가져오기를 위한 데이터 파일로 사용하려면 CSV 파일이 다음 제한 사항을 충족해야 합니다.To be usable as a data file for bulk import, a CSV file must comply with the following restrictions:

    또한 데이터 파일의 데이터를 테이블로 대량으로 가져오려면 다음 요구 사항을 충족해야 합니다.In addition, the bulk import of data from a data file into a table requires the following:

  • 사용자는 테이블에 대한 INSERT 및 SELECT 권한이 있어야 합니다.Users must have INSERT and SELECT permissions on the table. 사용자가 제약 조건 해제 같은 DDL(데이터 정의 언어) 작업을 필요로 하는 옵션을 사용할 경우 ALTER TABLE 권한도 있어야 합니다.Users also need ALTER TABLE permission when they use options that require data definition language (DDL) operations, such as disabling constraints.

  • BULK INSERT 또는 INSERT ... SELECT * FROM OPENROWSET(BULK...)를 사용하여 데이터를 대량으로 가져올 경우 SQL ServerSQL Server 프로세스의 보안 프로필(사용자가 SQL ServerSQL Server 제공 로그인을 사용하여 로그인할 경우) 또는 위임된 보안에서 사용되는 MicrosoftMicrosoft Windows 로그인으로 읽기 작업을 위해 데이터 파일에 액세스할 수 있어야 합니다.When you bulk import data by using BULK INSERT or INSERT ... SELECT * FROM OPENROWSET(BULK...), the data file must be accessible for read operations by either the security profile of the SQL ServerSQL Server process (if the user logs in using SQL ServerSQL Server provided login) or by the MicrosoftMicrosoft Windows login that is used under delegated security. 또한 사용자는 파일을 읽을 ADMINISTER BULK OPERATIONS 권한이 있어야 합니다.Additionally, the user must have ADMINISTER BULK OPERATIONS permission to read the file.

참고

분할된 뷰로 대량 가져오기는 지원되지 않고 분할된 뷰로 데이터를 대량으로 가져오려는 시도는 실패합니다.Bulk importing into a partitioned view is unsupported, and attempts to bulk import data into a partitioned view fail.

외부 리소스External Resources

Excel에서 SQL Server로 데이터를 가져오는 방법How to import data from Excel to SQL Server

변경 내역Change History

업데이트된 내용Updated content
CSV 데이터를 가져오는 데 OLE DB Provider for Jet를 사용하는 방법에 대한 정보가 추가되었습니다.Added information about using the OLE DB Provider for Jet to import CSV data.

참고 항목See Also

bcp Utility bcp Utility
BULK INSERT(Transact-SQL) BULK INSERT (Transact-SQL)
데이터 형식(Transact-SQL) Data Types (Transact-SQL)
문자 형식을 사용하여 데이터 가져오기 또는 내보내기(SQL Server) Use Character Format to Import or Export Data (SQL Server)
네이티브 형식을 사용하여 데이터 가져오기 또는 내보내기(SQL Server) Use Native Format to Import or Export Data (SQL Server)