sp_addtype(Transact-SQL)sp_addtype (Transact-SQL)

적용 대상: 예SQL Server 아니요Azure SQL Database 아니요Azure Synapse Analytics(SQL DW) 아니요병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

별칭 데이터 형식을 만듭니다.Creates an alias data type.

중요

대신 CREATE TYPE 을 사용 이 기능은 유지 관리 모드에 있으며, Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. 합니다.이 기능은 유지 관리 모드에 있으며, Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use CREATE TYPE instead.

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

구문Syntax

  
sp_addtype [ @typename = ] type,   
    [ @phystype = ] system_data_type   
    [ , [ @nulltype = ] 'null_type' ] ;  

인수Arguments

[ @typename = ] type은 별칭 데이터 형식의 이름입니다.[ @typename = ] type Is the name of the alias data type. 별칭 데이터 형식 이름은 식별자 에 대 한 규칙을 따라야 하며 각 데이터베이스에서 고유 해야 합니다.Alias data type names must follow the rules for identifiers and must be unique in each database. 형식은 sysname이며 기본값은 없습니다.type is sysname, with no default.

[ @phystype = ] system_data_type은 별칭 데이터 형식의 기반이 되는 실제 또는 제공 SQL ServerSQL Server 데이터 형식입니다. system_data_typesysname이며 기본값은 없고 다음 값 중 하나일 수 있습니다.[ @phystype = ] system_data_type Is the physical, or SQL ServerSQL Server supplied, data type on which the alias data type is based.system_data_type is sysname, with no default, and can be one of these values:

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

중간 공백 또는 구두점이 있는 매개 변수는 모두 따옴표로 묶어야 합니다.Quotation marks are required around all parameters that have embedded blank spaces or punctuation marks. 사용 가능한 데이터 형식에 대 한 자세한 내용은 데이터 형식 (transact-sql)을 참조 하세요.For more information about available data types, see Data Types (Transact-SQL).

nn
선택된 데이터 형식의 길이를 표시하는 음이 아닌 정수입니다.Is a nonnegative integer that indicates the length for the chosen data type.

PP
소수점 왼쪽과 오른쪽에 저장할 수 있는 최대 총 십진 자릿수를 표시하는 음이 아닌 정수입니다.Is a nonnegative 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).

ss
소수점 오른쪽에 저장할 수 있는 최대 십진 자릿수를 표시하는 음이 아닌 정수이며 전체 자릿수보다 작거나 같아야 합니다.Is a nonnegative 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).

[ @nulltype = ] 'null_type' 별칭 데이터 형식이 null 값을 처리 하는 방법을 나타냅니다.[ @nulltype = ] 'null_type' Indicates the way the alias data type handles null values. null_typevarchar ( 8 ) 이며 기본값은 NULL이 고 작은따옴표 (' null ', ' NOT null ' 또는 ' nonull ')로 묶어야 합니다.null_type is varchar( 8 ), with a default of NULL, and must be enclosed in single quotation marks ('NULL', 'NOT NULL', or 'NONULL'). Null_type sp_addtype에 의해 명시적으로 정의 되지 않은 경우 현재 기본 null 허용 여부로 설정 됩니다.If null_type is not explicitly defined by sp_addtype, it is set to the current default nullability. GETANSINULL 시스템 함수를 사용하면 현재의 기본 NULL 허용 여부를 확인할 수 있습니다.Use the GETANSINULL system function to determine the current default nullability. 이것은 SET 문 또는 ALTER DATABASE를 사용하여 조정될 수 있습니다.This can be adjusted by using the SET statement or ALTER DATABASE. NULL 허용 여부는 명시적으로 정의해야 합니다.Nullability should be explicitly defined. @phystypebit이 고 @nulltype 이 지정 되지 않은 경우 기본값은 NULL이 아닙니다.If @phystype is bit, and @nulltype is not specified, the default is NOT NULL.

참고

Null_type 매개 변수는이 데이터 형식에 대 한 기본 null 허용만 정의 합니다.The null_type parameter only defines the default nullability for this data type. 테이블을 만드는 동안 별칭 데이터 형식을 사용할 때 NULL 허용 여부를 명시적으로 정의하면 정의된 NULL 허용 여부보다 우선적으로 적용됩니다.If nullability is explicitly defined when the alias data type is used during table creation, it takes precedence over the defined nullability. 자세한 내용은 ALTER TABLE () transact-sqlCREATE TABLE (transact-sql)을 참조 하세요.For more information, see ALTER TABLE (Transact-SQL) and CREATE TABLE (Transact-SQL).

반환 코드 값Return Code Values

0(성공) 또는 1(실패)0 (success) or 1 (failure)

결과 집합Result Sets

없음None

설명Remarks

별칭 데이터 형식 이름은 데이터베이스 내에서 고유해야 하지만 이름이 서로 다른 별칭 데이터 형식은 같은 정의를 사용할 수 있습니다.An alias data type name must be unique in the database, but alias data types with different names can have the same definition.

Sp_addtype 를 실행 하면 특정 데이터베이스에 대 한 sys. types 카탈로그 뷰에 표시 되는 별칭 데이터 형식이 만들어집니다.Executing sp_addtype creates an alias data type that appears in the sys.types catalog view for a specific database. 별칭 데이터 형식을 모든 새 사용자 정의 데이터베이스에서 사용할 수 있어야 하는 경우 모델에 추가 합니다.If the alias data type must be available in all new user-defined databases, add it to model. 별칭 데이터 형식을 만든 다음 이 형식을 CREATE TABLE 또는 ALTER TABLE에서 사용할 수 있으며 별칭 데이터 형식에 기본값 및 규칙을 바인딩할 수 있습니다.After an alias data type is created, you can use it in CREATE TABLE or ALTER TABLE, and also bind defaults and rules to the alias data type. Sp_addtype 를 사용 하 여 만든 모든 스칼라 별칭 데이터 형식은 dbo 스키마에 포함 됩니다.All scalar alias data types that are created by using sp_addtype are contained in the dbo schema.

별칭 데이터 형식은 데이터베이스의 기본 데이터 정렬을 상속합니다.Alias data types inherit the default collation of the database. 별칭 형식의 열과 변수의 데이터 정렬은 Transact-SQLTransact-SQL CREATE TABLE, ALTER TABLE 및 DECLARE @local_variable 문에 정의 됩니다.The collations of columns and variables of alias types are defined in the Transact-SQLTransact-SQL CREATE TABLE, ALTER TABLE and DECLARE @local_variable statements. 데이터베이스의 기본 데이터 정렬을 변경하면 해당 형식의 새 열과 변수에만 적용되고 기존 열과 변수의 데이터 정렬은 변경되지 않습니다.Changing the default collation of the database applies only to new columns and variables of the type; it does not change the collation of existing ones.

중요

이전 버전과의 호환성을 위해 공용 데이터베이스 역할에는 sp_addtype를 사용 하 여 만든 별칭 데이터 형식에 대 한 REFERENCES 권한이 자동으로 부여 됩니다.For backward compatibility purposes, the public database role is automatically granted REFERENCES permission on alias data types that are created by using sp_addtype. 참고 sp_addtype대신 CREATE TYPE 문을 사용 하 여 별칭 데이터 형식을 만들면 이러한 자동 부여가 발생 하지 않습니다.Note when alias data types are created by using the CREATE TYPE statement instead of sp_addtype, no such automatic grant occurs.

별칭 데이터 형식은 SQL ServerSQL Server timestamp, table, xml, varchar (max) , nvarchar ( max) 또는 varbinary (max) 데이터 형식을 사용 하 여 정의할 수 없습니다.Alias data types cannot be defined by using the SQL ServerSQL Server timestamp, table, xml, varchar(max), nvarchar(max) or varbinary(max) data types.

사용 권한Permissions

Db_owner 또는 db_ddladmin 고정 데이터베이스 역할의 멤버 자격이 필요 합니다.Requires membership in the db_owner or db_ddladmin fixed database role.

Examples

A.A. NULL 값을 허용하지 않는 별칭 데이터 형식 만들기Creating an alias data type that does not allow for null values

다음 예에서는 SQL ServerSQL Server제공 된 varchar 데이터 형식을 기반으로 하는 ssn (주민 등록 번호) 라는 별칭 데이터 형식을 만듭니다.The following example creates an alias data type named ssn (social security number) that is based on the SQL ServerSQL Server-supplied varchar data type. ssn 데이터 형식은 11자리의 주민 등록 번호(999-99-9999)를 보유하는 열에 사용됩니다.The ssn data type is used for columns holding 11-digit social security numbers (999-99-9999). 이 열은 NULL이 될 수 없습니다.The column cannot be NULL.

varchar(11)는 문장 부호(괄호)를 포함하고 있으므로 작은따옴표로 묶어야 합니다.Notice that varchar(11) is enclosed in single quotation marks because it contains punctuation (parentheses).

USE master;  
GO  
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';  
GO  

2.B. NULL 값을 허용하는 별칭 데이터 형식 만들기Creating an alias data type that allows for null values

다음 예에서는 NULL 값을 허용하는 datetime라는 별칭 데이터 형식(birthday 기반)을 만듭니다.The following example creates an alias data type (based on datetime) named birthday that allows for null values.

USE master;  
GO  
EXEC sp_addtype birthday, datetime, 'NULL';  

3.C. 추가 별칭 데이터 형식 만들기Creating additional alias data types

다음 예에서는 국내 및 국제 전화 및 팩스 번호 모두에 대해 두 개의 추가 별칭 데이터 형식인 telephonefax를 만듭니다.The following example creates two additional alias data types, telephone and fax, for both domestic and international telephone and fax numbers.

USE master;  
GO  
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';  
GO  
EXEC sp_addtype fax, 'varchar(24)', 'NULL';  
GO  

참고 항목See Also

데이터베이스 엔진 저장 프로시저 (transact-sql) Database Engine Stored Procedures (Transact-SQL)
CREATE TYPE(Transact-SQL) CREATE TYPE (Transact-SQL)
CREATE DEFAULT(Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE RULE(Transact-SQL) CREATE RULE (Transact-SQL)
sp_bindefault(Transact-SQL) sp_bindefault (Transact-SQL)
sp_bindrule (Transact-SQL) sp_bindrule (Transact-SQL)
(transact-sql) sp_droptypesp_droptype (Transact-SQL)
sp_rename(Transact-SQL) sp_rename (Transact-SQL)
(transact-sql) sp_unbindefaultsp_unbindefault (Transact-SQL)
sp_unbindrule (Transact-SQL) sp_unbindrule (Transact-SQL)
시스템 저장 프로시저(Transact-SQL)System Stored Procedures (Transact-SQL)