CREATE TYPE(Transact-SQL)CREATE TYPE (Transact-SQL)

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

SQL ServerSQL Server 또는 Azure SQL 데이터베이스Azure SQL Database에서 현재 데이터베이스에 별칭 데이터 형식 또는 사용자 정의 형식을 만듭니다.Creates an alias data type or a user-defined type in the current database in SQL ServerSQL Server or Azure SQL 데이터베이스Azure SQL Database. 별칭 데이터 형식의 구현은 SQL ServerSQL Server 네이티브 시스템 형식을 기반으로 합니다.The implementation of an alias data type is based on a SQL ServerSQL Server native system type. 사용자 정의 형식은 MicrosoftMicrosoft .NET Framework.NET Framework CLR(공용 언어 런타임)에서 어셈블리의 클래스를 통해 구현됩니다.A user-defined type is implemented through a class of an assembly in the MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR). 사용자 정의 형식을 구현에 바인딩하기 위해서는 우선 CREATE ASSEMBLY를 사용하여 해당 형식의 구현을 포함하는 CLR 어셈블리를 SQL ServerSQL Server에 등록해야 합니다.To bind a user-defined type to its implementation, the CLR assembly that contains the implementation of the type must first be registered in SQL ServerSQL Server by using CREATE ASSEMBLY.

SQL ServerSQL Server에서는 CLR 코드 실행 기능이 기본적으로 해제되어 있습니다.The ability to run CLR code is off by default in SQL ServerSQL Server. 관리 코드 모듈을 참조하는 데이터베이스 개체를 생성, 수정 및 삭제할 수 있지만 sp_configure를 사용하여 clr enabled Option을 설정해야만 SQL ServerSQL Server에서 이러한 참조가 실행됩니다.You can create, modify and drop database objects that reference managed code modules, but these references will not execute in SQL ServerSQL Server unless the clr enabled Option is enabled by using sp_configure.

참고

이 항목에서는 .NET Framework CLR을 SQL Server에 통합하는 방법에 대해 설명합니다.The integration of .NET Framework CLR into SQL Server is discussed in this topic. Azure SQL 데이터베이스SQL Database에는 CLR 통합이 적용되지 않습니다.CLR integration does not apply to Azure SQL 데이터베이스SQL Database.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

-- Disk-Based Type Syntax  
CREATE TYPE [ schema_name. ] type_name  
{   
    FROM base_type   
    [ ( precision [ , scale ] ) ]  
    [ NULL | NOT NULL ]   
  | EXTERNAL NAME assembly_name [ .class_name ]   
  | AS TABLE ( { <column_definition> | <computed_column_definition> }  
        [ <table_constraint> ] [ ,...n ] )    
} [ ; ]  

<column_definition> ::=  
column_name <data_type>  
    [ COLLATE collation_name ]   
    [ NULL | NOT NULL ]  
    [   
        DEFAULT constant_expression ]   
      | [ IDENTITY [ ( seed ,increment ) ]   
    ]  
    [ ROWGUIDCOL ] [ <column_constraint> [ ...n ] ]   

<data type> ::=   
[ type_schema_name . ] type_name   
    [ ( precision [ , scale ] | max |   
                [ { CONTENT | DOCUMENT } ] xml_schema_collection ) ]   

<column_constraint> ::=   
{     { PRIMARY KEY | UNIQUE }   
        [ CLUSTERED | NONCLUSTERED ]   
        [   
            WITH ( <index_option> [ ,...n ] )   
        ]  
  | CHECK ( logical_expression )   
}   

<computed_column_definition> ::=  

column_name AS computed_column_expression   
[ PERSISTED [ NOT NULL ] ]  
[   
    { PRIMARY KEY | UNIQUE }  
        [ CLUSTERED | NONCLUSTERED ]  
        [   
            WITH ( <index_option> [ ,...n ] )  
        ]  
    | CHECK ( logical_expression )   
]   

<table_constraint> ::=  
{   
    { PRIMARY KEY | UNIQUE }   
        [ CLUSTERED | NONCLUSTERED ]   
    ( column [ ASC | DESC ] [ ,...n ] )   
        [   
    WITH ( <index_option> [ ,...n ] )   
        ]  
    | CHECK ( logical_expression )   
}   

<index_option> ::=  
{  
    IGNORE_DUP_KEY = { ON | OFF }  
}  
-- Memory-Optimized Table Type Syntax  
CREATE TYPE [schema_name. ] type_name  
AS TABLE ( { <column_definition> }  
    |  [ <table_constraint> ] [ ,... n ]    
    | [ <table_index> ] [ ,... n ]    } )
    [ WITH ( <table_option> [ ,... n ] ) ]  
 [ ; ]  

<column_definition> ::=  
column_name <data_type>  
    [ COLLATE collation_name ]   [ NULL | NOT NULL ]    [  
      [ IDENTITY [ (1 , 1) ]  
    ]  
    [ <column_constraint> [ ... n ] ]    [ <column_index> ]  

<data type> ::=  
 [type_schema_name . ] type_name [ (precision [ , scale ]) ]  

<column_constraint> ::=  
{ PRIMARY KEY {   NONCLUSTERED HASH WITH (BUCKET_COUNT = bucket_count) 
                | NONCLUSTERED } }  

< table_constraint > ::=  
{ PRIMARY KEY { NONCLUSTERED HASH (column [ ,... n ] ) 
                   WITH (BUCKET_COUNT = bucket_count) 
               | NONCLUSTERED  (column [ ASC | DESC ] [ ,... n ] )  } }  

<column_index> ::=  
  INDEX index_name  
{ { [ NONCLUSTERED ] HASH WITH (BUCKET_COUNT = bucket_count) 
     | NONCLUSTERED } }  

< table_index > ::=  
  INDEX constraint_name  
{ { [ NONCLUSTERED ] HASH (column [ ,... n ] ) WITH (BUCKET_COUNT = bucket_count) 
 |  [NONCLUSTERED]  (column [ ASC | DESC ] [ ,... n ] )} }  

<table_option> ::=  
{  
    [MEMORY_OPTIMIZED = {ON | OFF}]  
}  

인수Arguments

schema_nameschema_name
별칭 데이터 형식이나 사용자 정의 형식이 속한 스키마의 이름입니다.Is the name of the schema to which the alias data type or user-defined type belongs.

type_nametype_name
별칭 데이터 형식 또는 사용자 정의 형식의 이름입니다.Is the name of the alias data type or user-defined type. 형식 이름은 식별자에 대한 규칙을 따라야 합니다.Type names must comply with the rules for identifiers.

base_typebase_type
별칭 데이터 형식의 기반이 되는 SQL ServerSQL Server 제공된 데이터 형식입니다.Is the SQL ServerSQL Server supplied data type on which the alias data type is based. base_typesysname이고 기본값은 없으며 다음 값 중 하나를 사용할 수 있습니다.base_type is sysname, with no default, and can be one of the following values:

bigintbigint binary( n )binary( n ) bitbit char( n )char( n )
datedate datetimedatetime datetime2datetime2 datetimeoffsetdatetimeoffset
decimaldecimal floatfloat imageimage intint
moneymoney nchar( n )nchar( n ) ntextntext numericnumeric
nvarchar( n | max)nvarchar( n | max) realreal smalldatetimesmalldatetime smallintsmallint
smallmoneysmallmoney sql_variantsql_variant texttext timetime
tinyinttinyint uniqueidentifieruniqueidentifier varbinary( n | max)varbinary( n | max) varchar( n | max)varchar( n | max)

base_type은 이러한 시스템 데이터 형식 중 하나에 매핑되는 데이터 형식 동의어도 될 수 있습니다.base_type can also be any data type synonym that maps to one of these system data types.

전체 자릿수precision
decimal 또는 numeric에서 소수점 왼쪽과 오른쪽에 기록할 수 있는 십진수의 최대 수를 표시하는 음이 아닌 정수입니다.For decimal or numeric, is a non-negative integer that indicates the maximum total number of decimal digits that can be stored, both to the left and to the right of the decimal point. 자세한 내용은 decimal 및 numeric (Transact-SQL)을 참조하세요.For more information, see decimal and numeric (Transact-SQL).

scalescale
decimal 또는 numeric에서 소수점 오른쪽에 기록할 수 있는 십진수의 최대 수를 표시하는 음이 아닌 정수이며 전체 자릿수보다 작거나 같아야 합니다.For decimal or numeric, is a non-negative integer that indicates the maximum number of decimal digits that can be stored to the right of the decimal point, and it must be less than or equal to the precision. 자세한 내용은 decimal 및 numeric (Transact-SQL)을 참조하세요.For more information, see decimal and numeric (Transact-SQL).

NULL | NOT NULLNULL | NOT NULL
해당 형식이 Null 값을 보관할 수 있는지 여부를 지정합니다.Specifies whether the type can hold a null value. 이를 지정하지 않으면 기본값은 NULL입니다.If not specified, NULL is the default.

assembly_nameassembly_name
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

공용 언어 런타임에서 사용자 정의 형식의 구현을 참조하는 SQL ServerSQL Server 어셈블리를 지정합니다.Specifies the SQL ServerSQL Server assembly that references the implementation of the user-defined type in the common language runtime. assembly_name은 현재 데이터베이스의 SQL ServerSQL Server에 있는 기존 어셈블리와 일치해야 합니다.assembly_name should match an existing assembly in SQL ServerSQL Server in the current database.

참고

포함된 데이터베이스에서는 EXTERNAL_NAME을 사용할 수 없습니다.EXTERNAL_NAME is not available in a contained database.

[.[. class_name ]class_name ]
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

사용자 정의 형식을 구현하는 어셈블리 내 클래스를 지정합니다.Specifies the class within the assembly that implements the user-defined type. class_name은 유효한 식별자여야 하며 어셈블리 표시 유형이 있는 어셈블리의 클래스로 존재해야 합니다.class_name must be a valid identifier and must exist as a class in the assembly with assembly visibility. class_name은 데이터베이스의 데이터 정렬과 무관하게 대/소문자를 구분하며 해당 어셈블리의 클래스 이름과 정확히 일치해야 합니다.class_name is case-sensitive, regardless of the database collation, and must exactly match the class name in the corresponding assembly. 클래스 작성에 사용되는 프로그래밍 언어가 C#과 같이 네임스페이스 개념을 사용하는 경우 클래스 이름이 대괄호([ ])로 묶은 정식 네임스페이스 이름이 될 수 있습니다.The class name can be a namespace-qualified name enclosed in square brackets ([ ]) if the programming language that is used to write the class uses the concept of namespaces, such as C#. class_name을 지정하지 않을 경우 SQL ServerSQL Servertype_name과 동일한 것으로 간주합니다.If class_name is not specified, SQL ServerSQL Server assumes it is the same as type_name.

<column_definition><column_definition>
사용자 정의 테이블 형식의 열을 정의합니다.Defines the columns for a user-defined table type.

<data type><data type>
사용자 정의 테이블 형식에 대한 열의 데이터 형식을 정의합니다.Defines the data type in a column for a user-defined table type. 데이터 형식에 대한 자세한 내용은 데이터 형식(Transact-SQL)을 참조하세요.For more information about data types, see Data Types (Transact-SQL). 테이블에 대한 자세한 내용은 CREATE TABLE (Transact-SQL)을 참조하세요.For more information about tables, see CREATE TABLE (Transact-SQL).

<column_constraint><column_constraint>
사용자 정의 테이블 형식에 대한 열 제약 조건을 정의합니다.Defines the column constraints for a user-defined table type. 지원되는 제약 조건은 PRIMARY KEY, UNIQUE 및 CHECK입니다.Supported constraints include PRIMARY KEY, UNIQUE, and CHECK. 테이블에 대한 자세한 내용은 CREATE TABLE (Transact-SQL)을 참조하세요.For more information about tables, see CREATE TABLE (Transact-SQL).

<computed_column_definition><computed_column_definition>
계산 열 식을 사용자 정의 테이블 형식의 열로 정의합니다.Defines a computed column expression as a column in a user-defined table type. 테이블에 대한 자세한 내용은 CREATE TABLE (Transact-SQL)을 참조하세요.For more information about tables, see CREATE TABLE (Transact-SQL).

<table_constraint><table_constraint>
사용자 정의 테이블 형식의 테이블 제약 조건을 정의합니다.Defines a table constraint on a user-defined table type. 지원되는 제약 조건은 PRIMARY KEY, UNIQUE 및 CHECK입니다.Supported constraints include PRIMARY KEY, UNIQUE, and CHECK.

<index_option><index_option>
고유 클러스터형 또는 고유 비클러스터형 인덱스에 여러 행을 삽입하는 작업에서 중복된 키 값이 있는 경우에 대한 오류 응답을 지정합니다.Specifies the error response to duplicate key values in a multiple-row insert operation on a unique clustered or unique nonclustered index. 인덱스 옵션에 대한 자세한 내용은 CREATE INDEX (Transact-SQL)을 참조하세요.For more information about index options, see CREATE INDEX (Transact-SQL).

INDEXINDEX
CREATE TABLE 문의 일부로 열 및 테이블 인덱스를 지정해야 합니다.You must specify column and table indexes as part of the CREATE TABLE statement. CREATE INDEX 및 DROP INDEX는 메모리 최적화 테이블에서 지원되지 않습니다.CREATE INDEX and DROP INDEX are not supported for memory-optimized tables.

MEMORY_OPTIMIZEDMEMORY_OPTIMIZED
적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 and Azure SQL 데이터베이스Azure SQL Database.

테이블 형식이 메모리 액세스에 최적화된 형식인지 여부를 나타냅니다.Indicates whether the table type is memory optimized. 이 옵션은 기본적으로 해제됩니다. 테이블(형식)은 메모리 액세스에 최적화된 테이블(형식)이 아닙니다.This option is off by default; the table (type) is not a memory optimized table (type). 메모리 최적화 테이블 형식은 메모리 최적화 사용자 테이블입니다. 디스크에 저장된 스키마는 다른 사용자 테이블과 비슷합니다.Memory optimized table types are memory-optimized user tables, the schema of which is persisted on disk similar to other user tables.

BUCKET_COUNTBUCKET_COUNT
적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 and Azure SQL 데이터베이스Azure SQL Database.

해시 인덱스에서 만들어야 하는 버킷 수를 나타냅니다.Indicates the number of buckets that should be created in the hash index. 해시 인덱스에서 BUCKET_COUNT의 최대값은 1,073,741,824입니다.The maximum value for BUCKET_COUNT in hash indexes is 1,073,741,824. 메모리 최적화 테이블의 인덱스에 대한 자세한 내용은 Memory-Optimized Tables에 대한 인덱스를 참조하세요.For more information about bucket counts, see Indexes for Memory-Optimized Tables. bucket_count는 필수 인수입니다.bucket_count is a required argument.

HASHHASH
적용 대상: SQL Server 2014(12.x)SQL Server 2014 (12.x)부터 SQL Server 2017SQL Server 2017Azure SQL 데이터베이스Azure SQL Database까지Applies to: SQL Server 2014(12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017 and Azure SQL 데이터베이스Azure SQL Database.

HASH 인덱스가 만들어졌음을 나타냅니다.Indicates that a HASH index is created. 해시 인덱스는 메모리 액세스에 최적화된 테이블에서만 지원됩니다.Hash indexes are supported only on memory optimized tables.

RemarksRemarks

assembly_name에서 참조하는 어셈블리의 클래스는 클래스의 메서드와 함께 SQL ServerSQL Server에서 사용자 정의 형식을 구현하기 위한 모든 요구 사항을 만족시켜야 합니다.The class of the assembly that is referenced in assembly_name, together with its methods, should satisfy all the requirements for implementing a user-defined type in SQL ServerSQL Server. 이러한 요구 사항에 대한 자세한 내용은 CLR User-Defined Types를 참조하세요.For more information about these requirements, see CLR User-Defined Types.

추가적인 고려 사항은 다음과 같습니다.Additional considerations include the following:

  • 클래스는 오버로드된 메서드를 가질 수 있지만 Transact-SQLTransact-SQL이 아닌 관리 코드 내부에서만 이런 메서드를 호출할 수 있습니다.The class can have overloaded methods, but these methods can be called only from within managed code, not from Transact-SQLTransact-SQL.

  • assembly_name이 SAFE 또는 EXTERNAL_ACCESS인 경우에는 정적 멤버를 const 또는 readonly로 선언해야 합니다.Any static members must be declared as const or readonly if assembly_name is SAFE or EXTERNAL_ACCESS.

    데이터베이스 내의 CLR에서 SQL ServerSQL Server에 업로드하는 각 형식에 대한 사용자 정의 형식은 오직 하나만 등록할 수 있습니다.Within a database, there can be only one user-defined type registered against any specified type that has been uploaded in SQL ServerSQL Server from the CLR. 데이터베이스에 사용자 정의 형식이 존재하는 CLR 형식에 대해 다시 사용자 정의 형식을 만드는 경우 CREATE TYPE에 오류가 발생하면서 실패합니다.If a user-defined type is created on a CLR type for which a user-defined type already exists in the database, CREATE TYPE fails with an error. 이런 제한은 CLR 형식을 둘 이상의 사용자 정의 형식에 매핑할 수 있는 경우 SQL 형식 확인 과정의 모호성을 피하기 위해 필요합니다.This restriction is required to avoid ambiguity during SQL Type resolution if a CLR type can be mapped to more than one user-defined type.

    해당 형식에 void를 반환하는 변경자(mutator) 메서드가 전혀 없으면 CREATE TYPE 문이 실행되지 않습니다.If any mutator method in the type does not return void, the CREATE TYPE statement does not execute.

    사용자 정의 형식을 수정하려면 DROP TYPE 문을 사용하여 해당 형식을 삭제한 다음 다시 만들어야 합니다.To modify a user-defined type, you must drop the type by using a DROP TYPE statement and then re-create it.

    public 데이터베이스 역할은 sp_addtype을 사용하여 만든 사용자 정의 형식과는 달리 CREATE TYPE을 사용하여 만든 형식에 대해서는 자동으로 REFERENCES 권한을 받지 못합니다.Unlike user-defined types that are created by using sp_addtype, the public database role is not automatically granted REFERENCES permission on types that are created by using CREATE TYPE. 이 권한은 별도로 허가해야 합니다.This permission must be granted separately.

    사용자 정의 테이블 형식에서 column_name <data type>에 사용되는 구조적 사용자 정의 형식은 해당 테이블 유형이 정의된 데이터베이스 스키마 범위의 일부입니다.In user-defined table types, structured user-defined types that are used in column_name <data type> are part of the database schema scope in which the table type is defined. 데이터베이스 내의 다른 범위에 있는 구조적 사용자 정의 형식에 액세스하려면 두 부분으로 된 이름을 사용하세요.To access structured user-defined types in a different scope within the database, use two-part names.

    사용자 정의 테이블 형식에서 계산 열에 대한 기본 키는 PERSISTED 및 NOT NULL이어야 합니다.In user-defined table types, the primary key on computed columns must be PERSISTED and NOT NULL.

메모리 액세스에 최적화된 테이블 형식Memory-Optimized Table Types

SQL Server 2014(12.x)SQL Server 2014 (12.x)부터 테이블 형식의 데이터 처리는 디스크가 아닌 기본 메모리에서 수행될 수 있습니다.Beginning in SQL Server 2014(12.x)SQL Server 2014 (12.x), processing data in a table type can be done in primary memory, and not on disk. 자세한 내용은 메모리 내 OLTP(메모리 내 최적화)를 참조하세요.For more information, see In-Memory OLTP (In-Memory Optimization). 메모리 최적화 테이블을 만드는 방법을 보여주는 코드 샘플은 메모리 최적화 테이블 및 고유하게 컴파일된 저장 프로시저 만들기를 참조하세요.For code samples showing how to create memory-optimized table types, see Creating a Memory-Optimized Table and a Natively Compiled Stored Procedure.

사용 권한Permissions

현재 데이터베이스에 대한 CREATE TYPE 권한 및 schema_name에 대한 ALTER 권한이 필요합니다.Requires CREATE TYPE permission in the current database and ALTER permission on schema_name. schema_name 을 지정하지 않으면 현재 사용자에 대한 스키마를 결정하는 기본 이름 확인 규칙이 적용됩니다.If schema_name is not specified, the default name resolution rules for determining the schema for the current user apply. assembly_name을 지정하면 사용자는 어셈블리나 그에 대한 REFERENCES 권한을 소유해야 합니다.If assembly_name is specified, a user must either own the assembly or have REFERENCES permission on it.

CREATE TABLE 문의 열이 사용자 정의 형식으로 정의되면 해당 형식에 대한 REFERENCES 권한이 필요합니다.If any columns in the CREATE TABLE statement are defined to be of a user-defined type, REFERENCES permission on the user-defined type is required.

참고

사용자 정의 형식을 사용하는 열을 사용하여 테이블을 만드는 사용자는 사용자 정의 형식에 대한 REFERENCES 권한이 필요합니다.A user creating a table with a column that uses a user-defined type needs the REFERENCES permission on the user-defined type. 이 테이블을 TempDB에서 만들어야 할 경우 테이블을 만들기 마다 REFERENCES 권한을 명시적으로 부여하거나 이 데이터 형식 및 REFERENCES 권한을 모델 데이터베이스에 추가해야 합니다.If this table must be created in TempDB, then either the REFERENCES permission needs to be granted explicitly each time before the table is created, or this data type and REFERENCES permissions need to be added to the Model database. 작업을 실행하면 이 데이터 형식 및 사용 권한이 TempDB에서 영구적으로 지원됩니다.If this is done, then this data type and permissions will be available in TempDB permanently. 그렇지 않으면 SQL Server를 다시 시작할 경우 사용자 정의 데이터 형식 및 사용 권한이 사라집니다.Otherwise, the user-defined data type and permissions will disappear when SQL Server is restarted. 자세한 내용은 CREATE TABLE을 참조하세요.For more information, see CREATE TABLE

Examples

1.A. varchar 데이터 형식을 기반으로 별칭 유형 만들기Creating an alias type based on the varchar data type

다음 예에서는 시스템이 제공하는 varchar 데이터 형식을 기반으로 별칭 유형을 만드는 방법을 보여 줍니다.The following example creates an alias type based on the system-supplied varchar data type.

CREATE TYPE SSN  
FROM varchar(11) NOT NULL ;  

2.B. 사용자 정의 형식 만들기Creating a user-defined type

다음 예에서는 utf8string 어셈블리 내의 utf8string클래스를 참조하는 Utf8String 형식을 만드는 방법을 보여 줍니다.The following example creates a type Utf8String that references class utf8string in the assembly utf8string. 형식을 만들기 전에 로컬 데이터베이스에 utf8string 어셈블리를 등록합니다.Before creating the type, assembly utf8string is registered in the local database. CREATE ASSEMBLY의 이진 부분을 올바른 유효한 설명으로 대체합니다.Replace the binary portion of the CREATE ASSEMBLY statement with a valid description.

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

CREATE ASSEMBLY utf8string  
AUTHORIZATION [dbi]   
FROM 0x4D... ;  
GO  
CREATE TYPE Utf8String   
EXTERNAL NAME utf8string.[Microsoft.Samples.SqlServer.utf8string] ;  
GO  

3.C. 사용자 정의 테이블 형식 만들기Creating a user-defined table type

다음 예에서는 두 개의 열이 있는 사용자 정의 테이블 형식을 만듭니다.The following example creates a user-defined table type that has two columns. 테이블 반환 매개 변수를 만들고 사용하는 방법은 Use Table-Valued Parameters (Database Engine)를 참조하세요.For more information about how to create and use table-valued parameters, see Use Table-Valued Parameters (Database Engine).

CREATE TYPE LocationTableType AS TABLE   
    ( LocationName VARCHAR(50)  
    , CostRate INT );  
GO  

참고 항목See Also

CREATE ASSEMBLY(Transact-SQL) CREATE ASSEMBLY (Transact-SQL)
DROP TYPE (Transact-SQL) DROP TYPE (Transact-SQL)
EVENTDATA(Transact-SQL)EVENTDATA (Transact-SQL)