ALTER TABLE column_definition(Transact-SQL)ALTER TABLE column_definition (Transact-SQL)

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance

ALTER TABLE을 사용하여 테이블에 추가된 열의 속성을 지정합니다.Specifies the properties of a column that are added to a table by using ALTER TABLE.

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

구문Syntax

column_name <data_type>  
[ FILESTREAM ]  
[ COLLATE collation_name ]   
[ NULL | NOT NULL ]  
[   
    [ CONSTRAINT constraint_name ] DEFAULT constant_expression [ WITH VALUES ]   
    | IDENTITY [ ( seed , increment ) ] [ NOT FOR REPLICATION ]   
]  
[ ROWGUIDCOL ]   
[ SPARSE ]   
[ ENCRYPTED WITH  
  ( COLUMN_ENCRYPTION_KEY = key_name ,  
      ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED } ,   
      ALGORITHM =  'AEAD_AES_256_CBC_HMAC_SHA_256'   
  ) ]  
[ MASKED WITH ( FUNCTION = ' mask_function ') ]  
[ <column_constraint> [ ...n ] ]  
  
<data type> ::=   
[ type_schema_name . ] type_name   
    [ ( precision [ , scale ] | max |   
        [ { CONTENT | DOCUMENT } ] xml_schema_collection ) ]   
  
<column_constraint> ::=   
[ CONSTRAINT constraint_name ]   
{     { PRIMARY KEY | UNIQUE }   
        [ CLUSTERED | NONCLUSTERED ]   
        [   
            WITH FILLFACTOR = fillfactor    
          | WITH ( < index_option > [ , ...n ] )   
        ]   
        [ ON { partition_scheme_name ( partition_column_name )   
            | filegroup | "default" } ]  
  | [ FOREIGN KEY ]   
        REFERENCES [ schema_name . ] referenced_table_name [ ( ref_column ) ]   
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]   
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]   
        [ NOT FOR REPLICATION ]   
  | CHECK [ NOT FOR REPLICATION ] ( logical_expression )   
}  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

인수Arguments

column_namecolumn_name
변경, 추가 또는 삭제할 열의 이름입니다.Is the name of the column to be altered, added, or dropped. column_name은 1~128자로 구성될 수 있습니다.column_name can consist of 1 through 128 characters. 새 열의 경우 타임스탬프 데이터 형식으로 만들어진 column_name을 생략할 수 있습니다.For new columns, created with a timestamp data type, column_name can be omitted. 타임스탬프 데이터 형식 열에 대해 column_name이 지정되지 않으면 타임스탬프가 이름으로 사용됩니다.If no column_name is specified for a timestamp data type column, the name timestamp is used.

[ type_schema_name .[ type_schema_name. ] type_name] type_name
추가된 열 및 해당 열이 속한 스키마의 데이터 형식입니다.Is the data type for the column that is added and the schema to which it belongs.

type_name은 다음과 같을 수 있습니다.type_name can be:

  • MicrosoftMicrosoftSQL ServerSQL Server 시스템 데이터 형식.A MicrosoftMicrosoftSQL ServerSQL Server system data type.

  • SQL ServerSQL Server 시스템 데이터 형식을 기반으로 하는 별칭 데이터 형식.An alias data type based on a SQL ServerSQL Server system data type. 별칭 데이터 형식은 테이블 정의에 사용하기 전에 CREATE TYPE을 사용하여 생성되어야 합니다.Alias data types must be created by using CREATE TYPE before they can be used in a table definition.

  • MicrosoftMicrosoft .NET Framework.NET Framework 사용자 정의 형식 및 이 형식이 속한 스키마.A MicrosoftMicrosoft .NET Framework.NET Framework user-defined type and the schema to which it belongs. .NET Framework.NET Framework 사용자 정의 형식은 테이블 정의에 사용하기 전에 CREATE TYPE을 사용하여 생성되어야 합니다.A .NET Framework.NET Framework user-defined type must be created by using CREATE TYPE before it can be used in a table definition.

type_schema_name을 지정하지 않으면 MicrosoftMicrosoft 데이터베이스 엔진Database Engine에서는 다음 순서로 type_name을 참조합니다.If type_schema_name is not specified, the MicrosoftMicrosoft 데이터베이스 엔진Database Engine references type_name in the following order:

  • SQL ServerSQL Server 시스템 데이터 형식The SQL ServerSQL Server system data type.

  • 현재 데이터베이스에 있는 현재 사용자의 기본 스키마The default schema of the current user in the current database.

  • 현재 데이터베이스의 dbo 스키마The dbo schema in the current database.

전체 자릿수precision
지정된 데이터 형식의 전체 자릿수입니다.Is the precision for the specified data type. 유효한 전체 자릿수 값에 대한 자세한 내용은 전체 자릿수, 소수 자릿수 및 길이(Transact-SQL)를 참조하세요.For more information about valid precision values, see Precision, Scale, and Length (Transact-SQL).

scalescale
지정된 데이터 형식의 소수 자릿수입니다.Is the scale for the specified data type. 유효한 소수 자릿수 값에 대한 자세한 내용은 전체 자릿수, 소수 자릿수 및 길이(Transact-SQL)를 참조하세요.For more information about valid scale values, see Precision, Scale, and Length (Transact-SQL).

maxmax
varchar, nvarcharvarbinary 데이터 유형에만 적용됩니다.Applies only to the varchar, nvarchar, and varbinary data types. 2^31바이트의 문자 및 이진 데이터와 2^30바이트의 유니코드 데이터를 저장하는 데 사용됩니다.These are used for storing 2^31 bytes of character and binary data, and 2^30 bytes of Unicode data.

CONTENTCONTENT
column_name에 있는 xml 데이터 형식의 각 인스턴스가 여러 개의 최상위 요소를 포함할 수 있도록 지정합니다.Specifies that each instance of the xml data type in column_name can comprise multiple top-level elements. CONTENT는 xml 데이터 형식에만 적용되며 xml_schema_collection도 지정한 경우에만 지정할 수 있습니다.CONTENT applies only to the xml data type and can be specified only if xml_schema_collection is also specified. 지정되지 않은 경우 기본 동작은 CONTENT입니다.If this is not specified, CONTENT is the default behavior.

DOCUMENTDOCUMENT
column_name에 있는 xml 데이터 형식의 각 인스턴스가 최상위 요소를 하나만 포함할 수 있도록 지정합니다.Specifies that each instance of the xml data type in column_name can comprise only one top-level element. DOCUMENT는 xml 데이터 형식에만 적용되며 xml_schema_collection도 지정한 경우에만 지정할 수 있습니다.DOCUMENT applies only to the xml data type and can be specified only if xml_schema_collection is also specified.

xml_schema_collectionxml_schema_collection
적용 대상: SQL Server 2008SQL Server 2008 이상Applies to: SQL Server 2008SQL Server 2008 and later.

XML 스키마 컬렉션과의 연결을 위해 xml 데이터 형식에만 적용됩니다.Applies only to the xml data type for associating an XML schema collection with the type. 스키마에 xml 열을 입력하기 전에 먼저 CREATE XML SCHEMA COLLECTION을 사용하여 데이터베이스에 해당 스키마를 만들어야 합니다.Before typing an xml column to a schema, the schema must first be created in the database by using CREATE XML SCHEMA COLLECTION.

FILESTREAMFILESTREAM
선택적으로 varbinary(max)type_name인 열에 대해 FILESTREAM 스토리지 특성을 지정합니다.Optionally specifies the FILESTREAM storage attribute for column that has a type_name of varbinary(max).

열에 대해 FILESTREAM이 지정된 경우 ROWGUIDCOL 특성을 갖는 uniqueidentifier 데이터 형식의 열도 테이블에 있어야 합니다.When FILESTREAM is specified for a column, the table must also have a column of the uniqueidentifier data type that has the ROWGUIDCOL attribute. 이 열은 Null 값을 허용하지 않으며 UNIQUE 또는 PRIMARY KEY 단일 열 제약 조건을 가져야 합니다.This column must not allow null values and must have either a UNIQUE or PRIMARY KEY single-column constraint. 열의 GUID 값은 애플리케이션(데이터가 삽입되는 경우)에 의해 또는 NEWID () 함수를 사용하는 DEFAULT 제약 조건에 의해 제공되어야 합니다.The GUID value for the column must be supplied either by an application when data is being inserted, or by a DEFAULT constraint that uses the NEWID () function.

테이블에 대해 정의된 FILESTREAM 열이 있는 동안에는 ROWGUIDCOL 열을 삭제하고 관련 제약 조건을 변경할 수 없습니다.The ROWGUIDCOL column cannot be dropped and the related constraints cannot be changed while there is a FILESTREAM column defined for the table. ROWGUIDCOL 열은 마지막 FILESTREAM 열이 삭제된 이후에만 삭제될 수 있습니다.The ROWGUIDCOL column can be dropped only after the last FILESTREAM column is dropped.

열에 대해 FILESTREAM 스토리지 특성이 지정된 경우 해당 열의 모든 값이 파일 시스템에 있는 FILESTREAM 데이터 컨테이너에 저장됩니다.When the FILESTREAM storage attribute is specified for a column, all values for that column are stored in a FILESTREAM data container on the file system.

열 정의 사용 방법을 보여 주는 예는 FILESTREAM (SQL Server)를 참조하세요.For an example that shows how to use column definition, see FILESTREAM (SQL Server).

COLLATE collation_nameCOLLATE collation_name
열에 대한 데이터 정렬을 지정합니다.Specifies the collation of the column. 이를 지정하지 않으면 열에 데이터베이스의 기본 데이터 정렬이 할당됩니다.If not specified, the column is assigned the default collation of the database. 데이터 정렬 이름으로는 Windows 데이터 정렬 이름 또는 SQL 데이터 정렬 이름을 사용할 수 있습니다.Collation name can be either a Windows collation name or an SQL collation name. 목록 및 자세한 내용은 Windows 데이터 정렬 이름(Transact-SQL)SQL Server 데이터 정렬 이름(Transact-SQL)을 참조하세요.For a list and more information, see Windows Collation Name (Transact-SQL) and SQL Server Collation Name (Transact-SQL).

COLLATE 절은 char, varchar, ncharnvarchar 데이터 형식의 열에 데이터 정렬을 지정하는 데만 사용할 수 있습니다.The COLLATE clause can be used to specify the collations only of columns of the char, varchar, nchar, and nvarchar data types.

COLLATE 절에 대한 자세한 내용은 COLLATE (Transact-SQL)을 참조하세요.For more information about the COLLATE clause, see COLLATE (Transact-SQL).

NULL | NOT NULLNULL | NOT NULL
열의 Null 값 허용 여부를 결정합니다.Determines whether null values are allowed in the column. NULL은 엄격하게 말해 제약 조건이 아니지만 NOT NULL처럼 지정할 수 있습니다.NULL is not strictly a constraint but can be specified just like NOT NULL.

[ CONSTRAINT constraint_name ][ CONSTRAINT constraint_name ]
DEFAULT 값 정의의 시작을 지정합니다.Specifies the start of a DEFAULT value definition. 이전 버전의 SQL ServerSQL Server와 호환성을 유지하기 위해 DEFAULT에 제약 조건 이름을 할당할 수 있습니다.To maintain compatibility with earlier versions of SQL ServerSQL Server, a constraint name can be assigned to a DEFAULT. constraint_name식별자에 적용되는 규칙을 따라야 하지만 숫자 기호(#)로 시작될 수 없습니다.constraint_name must follow the rules for identifiers, except that the name cannot start with a number sign (#). constraint_name을 지정하지 않으면 시스템 생성 이름이 DEFAULT 정의에 할당됩니다.If constraint_name is not specified, a system-generated name is assigned to the DEFAULT definition.

DEFAULTDEFAULT
열의 기본값을 지정하는 키워드입니다.Is a keyword that specifies the default value for the column. DEFAULT 정의를 사용하여 기존 데이터 행에 새 열의 값을 제공할 수 있습니다.DEFAULT definitions can be used to provide values for a new column in the existing rows of data. DEFAULT 정의는 timestamp 열 또는 IDENTITY 속성이 있는 열에는 적용할 수 없습니다.DEFAULT definitions cannot be applied to timestamp columns, or columns with an IDENTITY property. 사용자 정의 형식 열에 대해 기본값을 지정할 경우 constant_expression에서 해당 사용자 정의 형식으로 암시적으로 변환할 수 있어야 합니다.If a default value is specified for a user-defined type column, the type must support an implicit conversion from constant_expression to the user-defined type.

constant_expressionconstant_expression
기본 열 값으로 사용되는 리터럴 값, NULL, 시스템 함수입니다.Is a literal value, a NULL, or a system function used as the default column value. .NET Framework.NET Framework 사용자 정의 유형으로 정의된 열과 함께 사용할 경우 constant_expression에서 사용자 정의 유형으로의 암시적 변환이 지원되어야 합니다.If used in conjunction with a column defined to be of a .NET Framework.NET Framework user-defined type, the implementation of the type must support an implicit conversion from the constant_expression to the user-defined type.

WITH VALUESWITH VALUES
열 및 DEFAULT 제약 조건을 추가할 때 열에서 NULLS를 허용하는 경우 기존 행에 WITH VALUES를 사용하면 새 열의 값이 DEFAULT constant_expression에 제공된 값으로 설정됩니다.When adding a column AND a DEFAULT constraint, if the column allows NULLS using WITH VALUES will, for existing rows, set the new column's value to the value given in DEFAULT constant_expression. 추가되는 열에서 NULLS를 허용하지 않으면 기존 행의 열 값은 항상 DEFAULT constant expression에 제공된 값으로 설정됩니다.If the column being added does not allow NULLS, for existing rows, the column's value will always be set to the value given in the DEFAULT constant expression. SQL Server 2012부터 이 작업은 메타데이터 작업 온라인 작업으로 null 열을 추가하지 않음입니다.Starting in SQL Server 2012 this may be a meta data operation adding-not-null-columns-as-an-online-operation. 관련 열이 추가되지 않을 때 이 작업이 사용되면 아무런 영향을 주지 않습니다.If this is used when the related column isn't also being added then it has no effect.

DEFAULT constant_expression에 지정된 값이 기존 행에 추가된 새 열에 저장되도록 지정합니다.Specifies that the value given in DEFAULT constant_expression is stored in a new column that is added to existing rows. 추가된 열이 Null 값을 허용하고 WITH VALUES가 지정된 경우 기존 행에 추가된 새 열에 기본값이 저장됩니다.If the added column allows null values and WITH VALUES is specified, the default value is stored in the new column that is added to existing rows. Null을 허용하는 열에 WITH VALUES를 지정하지 않으면 NULL 값은 기존 행의 새 열에 저장됩니다.If WITH VALUES is not specified for columns that allow nulls, the value NULL is stored in the new column, in existing rows. 새 열이 Null을 허용하지 않으면 WITH VALUES의 지정 여부에 관계없이 새 행에 기본값이 저장됩니다.If the new column does not allow nulls, the default value is stored in new rows regardless of whether WITH VALUES is specified.

IDENTITYIDENTITY
새 열이 ID 열임을 지정합니다.Specifies that the new column is an identity column. SQL Server 데이터베이스 엔진SQL Server Database Engine은 열에 고유한 증가값을 제공합니다.The SQL Server 데이터베이스 엔진SQL Server Database Engine provides a unique, incremental value for the column. 기존 테이블에 ID 열을 추가하면 ID 번호가 테이블의 기존 행에 추가되며 초기값과 증가값이 적용됩니다.When you add identifier columns to existing tables, the identity numbers are added to the existing rows of the table with the seed and increment values. 행이 업데이트되는 순서는 보장되지 않습니다.The order in which the rows are updated is not guaranteed. 새로 추가한 모든 행에 대한 ID 열도 생성됩니다.Identity numbers are also generated for any new rows that are added.

ID 열은 일반적으로 PRIMARY KEY 제약 조건과 함께 사용되어 테이블의 고유한 행 식별자 역할을 합니다.Identity columns are commonly used in conjunction with PRIMARY KEY constraints to serve as the unique row identifier for the table. IDENTITY 속성은 tinyint, smallint, int, bigint, decimal(p,0) 또는 numeric(p,0) 열에 할당할 수 있습니다.The IDENTITY property can be assigned to a tinyint, smallint, int, bigint, decimal(p,0), or numeric(p,0) column. ID 열은 테이블당 하나만 만들 수 있습니다.Only one identity column can be created per table. DEFAULT 키워드 및 바인딩된 기본값은 ID 열에 사용할 수 없습니다.The DEFAULT keyword and bound defaults cannot be used with an identity column. 초기값과 증가값은 모두 지정하거나 둘 다 지정하지 말아야 합니다.Either both the seed and increment must be specified, or neither. 아무 것도 지정하지 않으면 기본값은 (1,1)입니다.If neither are specified, the default is (1,1).

참고

기존 테이블 열을 수정하여 IDENTITY 속성을 추가할 수는 없습니다.You cannot modify an existing table column to add the IDENTITY property.

열이 구독자로 복제될 때 데이터가 일치하지 않을 수 있기 때문에 게시된 테이블에는 ID 열을 추가할 수 없습니다.Adding an identity column to a published table is not supported because it can result in nonconvergence when the column is replicated to the Subscriber. 게시자의 ID 열 값은 영향을 받는 테이블 행이 실제로 저장된 순서에 따라 달라집니다.The values in the identity column at the Publisher depend on the order in which the rows for the affected table are physically stored. 구독자에서는 행이 다르게 저장될 수 있으므로 ID 열의 값이 같은 행에 대해 다를 수 있습니다.The rows might be stored differently at the Subscriber; therefore, the value for the identity column can be different for the same rows..

값을 명시적으로 삽입할 수 있도록 허용하여 열의 IDENTITY 속성을 해제하려면 SET IDENTITY_INSERT를 사용하세요.To disable the IDENTITY property of a column by allowing values to be explicitly inserted, use SET IDENTITY_INSERT.

seedseed
테이블에 로드된 첫 번째 행에 사용되는 값입니다.Is the value used for the first row loaded into the table.

incrementincrement
이전에 로드된 행의 ID 값에 더해지는 증가 값입니다.Is the incremental value added to the identity value of the previous row that is loaded.

NOT FOR REPLICATIONNOT FOR REPLICATION
적용 대상: SQL Server 2008SQL Server 2008 이상Applies to: SQL Server 2008SQL Server 2008 and later.

IDENTITY 속성에 지정할 수 있습니다.Can be specified for the IDENTITY property. 이 절이 IDENTITY 속성에 지정된 경우 복제 에이전트가 삽입 작업을 수행할 때 ID 열의 값이 증가하지 않습니다.If this clause is specified for the IDENTITY property, values are not incremented in identity columns when replication agents perform insert operations.

ROWGUIDCOLROWGUIDCOL
적용 대상: SQL Server 2008SQL Server 2008 이상Applies to: SQL Server 2008SQL Server 2008 and later.

열이 ROWGUIDCOL(행 전역 고유 식별자 열)인지 여부를 지정합니다.Specifies that the column is a row globally unique identifier column. ROWGUIDCOL은 uniqueidentifier 열에만 할당될 수 있고 한 테이블당 한 개의 uniqueidentifier 열만 ROWGUIDCOL 열로 지정할 수 있습니다.ROWGUIDCOL can only be assigned to a uniqueidentifier column, and only one uniqueidentifier column per table can be designated as the ROWGUIDCOL column. ROWGUIDCOL은 사용자 정의 데이터 형식의 열에 할당할 수 없습니다.ROWGUIDCOL cannot be assigned to columns of user-defined data types.

ROWGUIDCOL로 인해 열에 저장된 값이 고유하도록 설정되거나ROWGUIDCOL does not enforce uniqueness of the values stored in the column. 테이블에 삽입된 새 행에 대한 값을 자동으로 생성하지 않습니다.Also, ROWGUIDCOL does not automatically generate values for new rows that are inserted into the table. 각 열에 대해 고유한 값을 생성하려면 INSERT 문에 NEWID 함수를 사용하거나 NEWID 함수를 열의 기본값으로 지정합니다.To generate unique values for each column, either use the NEWID function on INSERT statements or specify the NEWID function as the default for the column. 자세한 내용은 NEWID (Transact-SQL)INSERT (Transact-SQL)를 참조하세요.For more information, see NEWID (Transact-SQL)and INSERT (Transact-SQL).

SPARSESPARSE
열이 스파스 열임을 나타냅니다.Indicates that the column is a sparse column. 스파스 열의 스토리지는 Null 값에 대해 최적화됩니다.The storage of sparse columns is optimized for null values. 스파스 열은 NOT NULL로 지정할 수 없습니다.Sparse columns cannot be designated as NOT NULL. 추가 제한 사항 및 스파스 열에 대한 자세한 내용은 스파스 열 사용을 참조하세요.For additional restrictions and more information about sparse columns, see Use Sparse Columns.

<column_constraint>
열 제약 조건 인수에 대한 정의는 column_constraint (Transact-SQL)을 참조하세요.For the definitions of the column constraint arguments, see column_constraint (Transact-SQL).

ENCRYPTED WITHENCRYPTED WITH
Always Encrypted 기능을 사용하여 열 암호화를 지정합니다.Specifies encrypting columns by using the Always Encrypted feature.

COLUMN_ENCRYPTION_KEY = key_nameCOLUMN_ENCRYPTION_KEY = key_name
열 암호화 키를 지정합니다.Specifies the column encryption key. 자세한 내용은 CREATE COLUMN ENCRYPTION KEY (Transact-SQL)을 참조하세요.For more information, see CREATE COLUMN ENCRYPTION KEY (Transact-SQL).

ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED }ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED }
결정적 암호화 는 지정된 일반 텍스트 값에 대해 항상 동일한 암호화된 값을 생성하는 방법을 사용합니다.Deterministic encryption uses a method which always generates the same encrypted value for any given plain text value. 결정적 암호화를 사용하면 암호화된 값을 기반으로 같음 비교를 이용한 검색, 그룹화 및 같음 조인을 이용한 조인이 가능하지만, 권한이 없는 사용자가 암호화된 열의 패턴을 검사하여 암호화된 값에 관한 정보를 추측할 수도 있습니다.Using deterministic encryption allows searching using equality comparison, grouping, and joining tables using equality joins based on encrypted values, but can also allow unauthorized users to guess information about encrypted values by examining patterns in the encrypted column. 결정적으로 암호화된 열의 두 테이블 조인은 두 열이 모두 같은 열 암호화 키를 사용하여 암호화된 경우에만 가능합니다.Joining two tables on columns encrypted deterministically is only possible if both columns are encrypted using the same column encryption key. 결정적 암호화에서는 문자 열에 대해 binary2 정렬 순서를 적용하는 열 데이터 정렬을 사용해야 합니다.Deterministic encryption must use a column collation with a binary2 sort order for character columns.

임의 암호화 는 예측하기 어려운 방식으로 데이터를 암호화하는 방법을 사용합니다.Randomized encryption uses a method that encrypts data in a less predictable manner. 임의 암호화는 좀 더 안전하지만 SQL Server 인스턴스가 보안 Enclave를 사용한 Always Encrypted를 지원하지 않으면, 암호화된 열에서 계산 및 인덱싱을 수행할 수 없습니다.Randomized encryption is more secure, but it prevents any computations and indexing on encrypted columns, unless your SQL Server instance supports Always Encrypted with secure enclaves.

Always Encrypted(보안 Enclave를 사용하지 않음)를 사용할 경우 매개 변수 또는 그룹화 매개 변수(예: 정부 ID 번호)를 사용하여 검색할 열에 대해 결정적 암호화를 사용합니다.If you are using Always Encrypted (without secure enclaves), use deterministic encryption for columns to be searched with parameters or grouping parameters, for example a government ID number. 다른 레코드와 함께 그룹화되지 않거나 테이블을 조인하는 데 사용되고 관심이 있는 암호화된 열을 포함한 행을 찾는 데에는 다른 열(거래 번호 등)을 사용하기 때문에 검색되지 않는 데이터(예: 신용 카드 번호)에 임의 암호화를 사용합니다.Use randomized encryption, for data such as a credit card number, which is not grouped with other records, or used to join tables, and which is not searched for because you use other columns (such as a transaction number) to find the row which contains the encrypted column of interest.

보안 Enclave에서 Always Encrypted를 사용할 경우 임의 암호화가 권장되는 암호화 유형입니다.If you are using Always Encrypted with secure enclaves, randomized encryption is a recommended encryption type.

열은 한정 데이터 형식이어야 합니다.Columns must be of a qualifying data type.

ALGORITHMALGORITHM
적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 이상, SQL DatabaseSQL Database.Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.
'AEAD_AES_256_CBC_HMAC_SHA_256' 이어야 합니다.Must be 'AEAD_AES_256_CBC_HMAC_SHA_256'.

기능 제약 조건을 포함한 자세한 내용은 Always Encrypted (데이터베이스 엔진)을 참조하세요.For more information including feature constraints, see Always Encrypted (Database Engine).

ADD MASKED WITH ( FUNCTION = ' mask_function ')ADD MASKED WITH ( FUNCTION = ' mask_function ')
적용 대상: SQL Server 2016(13.x)SQL Server 2016 (13.x) 이상, SQL DatabaseSQL Database.Applies to: SQL Server 2016(13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.

동적 데이터 마스크를 지정합니다.Specifies a dynamic data mask. mask_function은 적절한 매개 변수를 포함한 마스킹 함수의 이름 입니다.mask_function is the name of the masking function with the appropriate parameters. 사용할 수 있는 옵션은 다음과 같습니다.The following functions are available:

  • default()default()

  • email()email()

  • partial()partial()

  • random()random()

함수 매개 변수에 대해서는 동적 데이터 마스킹을 참조하세요.For function parameters, see Dynamic Data Masking.

설명Remarks

uniqueidentifier 데이터 형식의 열이 추가되면 NEWID() 함수를 기본으로 사용하도록 하여 테이블의 기존 행에 새 열이 추가될 때 고유한 ID 값을 제공하도록 할 수 있습니다.If a column is added having a uniqueidentifier data type, it can be defined with a default that uses the NEWID() function to supply the unique identifier values in the new column for each existing row in the table.

데이터베이스 엔진Database Engine에서는 열 정의에 DEFAULT, IDENTITY, ROWGUIDCOL 또는 열 제약 조건을 순서에 관계없이 지정할 수 있습니다.The 데이터베이스 엔진Database Engine does not enforce an order for specifying DEFAULT, IDENTITY, ROWGUIDCOL, or column constraints in a column definition.

열을 추가하여 데이터 행 크기가 8060바이트를 초과하면 ALTER TABLE 문이 실패합니다.ALTER TABLE statement will fail if adding the column will cause the data row size to exceed 8060 bytes.

예제Examples

예제는 ALTER TABLE(Transact-SQL)을 참조하세요.For examples, see ALTER TABLE (Transact-SQL).

참고 항목See Also

ALTER TABLE(Transact-SQL)ALTER TABLE (Transact-SQL)