데이터를 가져오거나 내보내기 위해 유니코드 네이티브 형식 사용(SQL Server)Use Unicode Native Format to Import or Export Data (SQL Server)

유니코드 네이티브 형식은 한 곳의 MicrosoftMicrosoft SQL ServerSQL Server 설치에서 다른 설치로 정보를 복사해야 하는 경우 유용합니다.Unicode native format is helpful when information must be copied from one MicrosoftMicrosoft SQL ServerSQL Server installation to another. 비문자 형식의 데이터에 네이티브 형식을 사용하면 문자 형식과 다른 데이터 형식 간의 불필요한 변환을 막고 시간을 절약할 수 있습니다.The use of native format for noncharacter data saves time, eliminating unnecessary conversion of data types to and from character format. 모든 문자 형식의 데이터에 유니코드 문자 형식을 사용하면 다른 코드 페이지를 사용하는 서버 간에 데이터를 대량 로드할 때 확장 문자의 손실을 방지할 수 있습니다.The use of Unicode character format for all character data prevents loss of any extended characters during bulk transfer of data between servers using different code pages. 유니코드 네이티브 형식의 데이터 파일은 어떤 대량 가져오기 방법으로도 읽을 수 있습니다.A data file in Unicode native format can be read by any bulk-import method.

확장 또는 DBCS 문자를 포함하는 데이터 파일을 사용하여 SQL ServerSQL Server 의 여러 인스턴트 사이에 대량의 데이터를 전송하는 경우 유니코드 네이티브 형식을 사용하는 것이 좋습니다.Unicode native format is recommended for the bulk transfer of data between multiple instances of SQL ServerSQL Server by using a data file that contains extended or DBCS characters. 비문자 데이터의 경우 유니코드 네이티브 형식은 네이티브(데이터베이스) 데이터 형식을 사용합니다.For noncharacter data, Unicode native format uses native (database) data types. char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max)ntext등의 문자 데이터의 경우 유니코드 네이티브 형식에서는 유니코드 문자 데이터 형식을 사용합니다.For character data, such as char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max), and ntext, the Unicode native format uses Unicode character data format.

유니코드 원시 형식의 데이터 파일에 SQLVARIANT로 저장된 sql_variant 데이터는 charvarchar 값이 ncharnvarchar로 변환되어 영향을 받은 열에 두 배의 저장 공간이 필요하다는 점을 제외하고 네이티브 형식의 데이터 파일과 같은 방법으로 작동합니다.The sql_variant data that is stored as a SQLVARIANT in a Unicode native-format data file operates in the same manner as it does in a native-format data file, except that char and varchar values are converted to nchar and nvarchar, which doubles the amount of storage required for the affected columns. 테이블 열로 대량 가져오기를 수행하면 원래의 메타데이터는 유지되고 값은 원래의 charvarchar 데이터 형식으로 다시 변환됩니다.The original metadata is preserved, and the values are converted back to their original char and varchar data type when bulk imported into a table column.

항목 내용In this Topic:
유니코드 네이티브 형식의 명령 옵션Command Options for Unicode Native Format
예제 테스트 조건Example Test Conditions
 ● 샘플 테이블 ● Sample Table
 ● 샘플 비 XML 서식 파일 ● Sample Non-XML Format File
Examples
 ● bcp 및 유니코드 원시 형식을 사용하여 데이터 내보내기 ● Using bcp and Unicode Native Format to Export Data
 ● bcp 및 유니코드 원시 형식을 사용하여 서식 파일 없이 데이터 가져오기 ● Using bcp and Unicode Native Format to Import Data without a Format File
 ● bcp 및 유니코드 원시 형식을 사용하여 XML 이외의 서식 파일과 함께 데이터 가져오기 ● Using bcp and Unicode Native Format to Import Data with a Non-XML Format File
 ● 서식 파일 없이 BULK INSERT 및 유니코드 원시 형식 사용 ● Using BULK INSERT and Unicode Native Format without a Format File
 ● XML 이외의 서식 파일과 함께 BULK INSERT 및 유니코드 원시 형식 사용하기 ● Using BULK INSERT and Unicode Native Format with a Non-XML Format File
 ● XML 이외의 서식 파일과 함께 OPENROWSET 및 유니코드 원시 형식 사용하기 ● Using OPENROWSET and Unicode Native Format with a Non-XML Format File
관련 태스크Related Tasks

유니코드 네이티브 형식의 명령 옵션Command Options for Unicode Native Format

bcp, BULK INSERT 또는 INSERT ... SELECT * FROM OPENROWSET(BULK...)를 사용하여 테이블로 유니코드 문자 형식 데이터를 가져올 수 있습니다.You can import Unicode native format data into a table using bcp, BULK INSERT or INSERT ... SELECT * FROM OPENROWSET(BULK...). bcp 명령 또는 BULK INSERT 문의 경우 문에서 데이터 형식을 지정할 수 있습니다.For a bcp command or BULK INSERT statement, you can specify the data format in the statement. INSERT ... SELECT * FROM OPENROWSET(BULK...) 문의 경우 서식 파일에서 데이터 형식을 지정해야 합니다.For an INSERT ... SELECT * FROM OPENROWSET(BULK...) statement, you must specify the data format in a format file.

유니코드 원시 형식에 대해 지원되는 명령 옵션은 다음과 같습니다.Unicode native format is supported by the following command options:

CommandCommand 옵션Option 설명Description
bcpbcp -N-N bcp 유틸리티가 유니코드 원시 형식을 사용하게 합니다. 즉, 모든 비문자 데이터에 네이티브(데이터베이스) 데이터 형식을 사용하고 모든 문자(char, nchar, varchar, nvarchar, text, 및 ntext) 데이터에 유니코드 문자 데이터 형식을 사용합니다.Causes the bcp utility to use the Unicode native format, which uses native (database) data types for all noncharacter data and Unicode character data format for all character (char, nchar, varchar, nvarchar, text, and ntext) data.
BULK INSERTBULK INSERT DATAFILETYPE ='widenative'DATAFILETYPE ='widenative' 데이터를 대량으로 가져올 때 유니코드 원시 형식을 사용합니다.Uses Unicode native format when bulk importing data.
OPENROWSETOPENROWSET 해당 사항 없음N/A 서식 파일을 사용해야 합니다.Must use a format file
참고

서식 파일에서 필드 단위로 서식을 지정할 수도 있습니다.Alternatively, you can specify formatting on a per-field basis in a format file. 자세한 내용은 데이터를 가져오거나 내보내기 위한 서식 파일(SQL Server)를 참조하세요.For more information, see Format Files for Importing or Exporting Data (SQL Server).

예제 테스트 조건Example Test Conditions

이 항목의 예제는 아래에 정의된 테이블 및 서식 파일을 기반으로 합니다.The examples in this topic are based on the table, and format file defined below.

샘플 테이블Sample Table

아래 스크립트는 테스트 데이터베이스인 myWidenative 라는 테이블을 만들고 테이블을 몇 가지 초기 값으로 채웁니다.The script below creates a test database, a table named myWidenative and populates the table with some initial values. Microsoft SSMS( SQL Server Management StudioSQL Server Management Studio )에서 다음 Transact-SQL을 실행합니다.Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

CREATE DATABASE TestDatabase;
GO

USE TestDatabase;
CREATE TABLE dbo.myWidenative ( 
    PersonID smallint NOT NULL,
    FirstName nvarchar(25) NOT NULL,
    LastName nvarchar(30) NOT NULL,
    BirthDate date,
    AnnualSalary money
);

-- Populate table
INSERT TestDatabase.dbo.myWidenative
VALUES 
(1, N'ϴAnthony', N'Grosse', '02-23-1980', 65000.00),
(2, N'❤Alica', N'Fatnowna', '11-14-1963', 45000.00),
(3, N'☎Stella', N'Rossenhain', '03-02-1992', 120000.00);

-- Review Data
SELECT * FROM TestDatabase.dbo.myWidenative;

샘플 비 XML 서식 파일Sample Non-XML Format File

SQL Server는 두 유형의 서식 파일, 즉 비 XML 서식 파일과 XML 서식 파일을 지원합니다.SQL Server support two types of format file: non-XML format and XML format. 비 XML 서식 파일은 이전 버전의 SQL Server에서 원래 지원했던 서식 파일입니다.The non-XML format is the original format that is supported by earlier versions of SQL Server. 자세한 내용은 비 XML 서식 파일(SQL Server) 을 검토하세요.Please review Non-XML Format Files (SQL Server) for detailed information. 다음 명령은 bcp 유틸리티 를 사용하여 myWidenative.fmt의 스키마를 기반으로 비 xml 서식 파일 myWidenative를 생성합니다.The following command will use the bcp utility to generate a non-xml format file, myWidenative.fmt, based on the schema of myWidenative. bcp 명령을 사용하여 서식 파일을 만들려면 데이터 파일 경로 대신 format 인수를 지정하고 nul 을 사용합니다.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. format 옵션에는 -f 옵션도 필요합니다.The format option also requires the -f option. 또한 이 예제에서 한정자 c 는 문자 데이터를 지정하는 데 사용되고 T 는 통합된 보안을 사용하여 신뢰할 수 있는 연결을 지정하는 데 사용됩니다.In addition, for this example, the qualifier c is used to specify character data, and T is used to specify a trusted connection using integrated security. 명령 프롬프트에서 다음 명령을 입력합니다.At a command prompt, enter the following commands:

bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N

REM Review file
Notepad D:\BCP\myWidenative.fmt
중요

비 XML 서식 파일이 캐리지 리턴\줄 바꿈으로 끝나는지 확인하세요.Ensure your non-XML format file ends with a carriage return\line feed. 그러지 않으면 다음과 같은 오류 메시지가 표시될 수 있습니다.Otherwise you will likely receive the following error message:

SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file

Examples

아래 예제에서는 위에서 만든 데이터베이스와 서식 파일을 사용합니다.The examples below use the database, and format files created above.

bcp 및 유니코드 원시 형식을 사용하여 데이터 내보내기Using bcp and Unicode Native Format to Export Data

-N 스위치 및 OUT 명령.-N switch and OUT command. 참고: 이 예제에서 만든 데이터 파일은 이후 나오는 모든 예제에서 사용됩니다.Note: the data file created in this example will be used in all subsequent examples. 명령 프롬프트에서 다음 명령을 입력합니다.At a command prompt, enter the following commands:

bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N

REM Review results
NOTEPAD D:\BCP\myWidenative.bcp

bcp 및 유니코드 원시 형식을 사용하여 서식 파일 없이 데이터 가져오기Using bcp and Unicode Native Format to Import Data without a Format File

-N 스위치 및 IN 명령.-N switch and IN command. 명령 프롬프트에서 다음 명령을 입력합니다.At a command prompt, enter the following commands:

REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"

REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -T -N

REM Review results is SSMS

bcp 및 유니코드 원시 형식을 사용하여 XML 이외의 서식 파일과 함께 데이터 가져오기Using bcp and Unicode Native Format to Import Data with a Non-XML Format File

-N-f 스위치와 IN 명령.-N and -f switches and IN command. 명령 프롬프트에서 다음 명령을 입력합니다.At a command prompt, enter the following commands:

REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"

REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -f D:\BCP\myWidenative.fmt -T

REM Review results is SSMS

서식 파일 없이 BULK INSERT 및 유니코드 원시 형식 사용Using BULK INSERT and Unicode Native Format without a Format File

DATAFILETYPE 인수.DATAFILETYPE argument. Microsoft SSMS( SQL Server Management StudioSQL Server Management Studio )에서 다음 Transact-SQL을 실행합니다.Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
    FROM 'D:\BCP\myWidenative.bcp'
    WITH (
        DATAFILETYPE = 'widenative'
        );

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

XML 이외의 서식 파일과 함께 BULK INSERT 및 유니코드 원시 형식 사용하기Using BULK INSERT and Unicode Native Format with a Non-XML Format File

FORMATFILE 인수.FORMATFILE argument. Microsoft SSMS( SQL Server Management StudioSQL Server Management Studio )에서 다음 Transact-SQL을 실행합니다.Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
   FROM 'D:\BCP\myWidenative.bcp'
   WITH (
        FORMATFILE = 'D:\BCP\myWidenative.fmt'
        );

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

XML 이외의 서식 파일과 함께 OPENROWSET 및 유니코드 원시 형식 사용하기Using OPENROWSET and Unicode Native Format with a Non-XML Format File

FORMATFILE 인수.FORMATFILE argument. Microsoft SSMS( SQL Server Management StudioSQL Server Management Studio )에서 다음 Transact-SQL을 실행합니다.Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative;  -- for testing
INSERT INTO TestDatabase.dbo.myWidenative
    SELECT *
    FROM OPENROWSET (
        BULK 'D:\BCP\myWidenative.bcp', 
        FORMATFILE = 'D:\BCP\myWidenative.fmt'  
        ) AS t1;

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

관련 작업Related Tasks

대량 가져오기 또는 대량 내보내기를 위한 데이터 형식을 사용하려면To use data formats for bulk import or bulk export

참고 항목See Also

bcp Utility bcp Utility
BULK INSERT(Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET(Transact-SQL) OPENROWSET (Transact-SQL)
데이터 형식(Transact-SQL) Data Types (Transact-SQL)