다음을 통해 공유


sp_addtype(Transact-SQL)

별칭 데이터 형식을 만듭니다.

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. CREATE TYPE을 대신 사용합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

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

인수

  • [ @typename= ] type
    별칭 데이터 형식의 이름입니다. 별칭 데이터 형식 이름은 식별자에 관한 규칙을 따라야 하며 각 데이터베이스에서 고유해야 합니다. type은 sysname이며 기본값은 없습니다.

  • [ @phystype=] system_data_type
    별칭 데이터 형식의 기반이 되는 실제 데이터 형식 또는 SQL Server에서 제공하는 데이터 형식입니다. system_data_type은 sysname이고 기본값은 없으며 다음 값 중 하나일 수 있습니다.

    bigint

    binary(n)

    bit

    char(n)

    datetime

    decimal

    float

    image

    int

    money

    nchar(n)

    ntext

    numeric

    nvarchar(n)

    real

    smalldatetime

    smallint

    smallmoney

    sql_variant

    text

    tinyint

    uniqueidentifier

    varbinary(n)

    varchar(n)

    중간 공백 또는 구두점이 있는 매개 변수는 모두 따옴표로 묶어야 합니다. 사용 가능한 데이터 형식에 대한 자세한 내용은 데이터 형식(Transact-SQL)을 참조하십시오.

  • n
    선택된 데이터 형식의 길이를 표시하는 음이 아닌 정수입니다.

  • P
    소수점 왼쪽과 오른쪽에 저장할 수 있는 최대 총 십진 자릿수를 표시하는 음이 아닌 정수입니다. 자세한 내용은 decimal 및 numeric(Transact-SQL)을 참조하십시오.

  • s
    소수점 오른쪽에 저장할 수 있는 최대 십진 자릿수를 표시하는 음이 아닌 정수이며 전체 자릿수보다 작거나 같아야 합니다. 자세한 내용은 decimal 및 numeric(Transact-SQL)을 참조하십시오.

  • [ @nulltype = ] 'null_type'
    별칭 데이터 형식의 NULL 값 처리 방식을 나타냅니다. null_type은 varchar(8)이며 기본값은 NULL이고 작은따옴표로 묶어야 합니다('NULL', 'NOT NULL' 또는 'NONULL'). null_type이 sp_addtype에 의해 명시적으로 정의되지 않은 경우에는 현재의 기본 NULL 허용 여부로 설정됩니다. GETANSINULL 시스템 함수를 사용하면 현재의 기본 NULL 허용 여부를 확인할 수 있습니다. 이것은 SET 문 또는 ALTER DATABASE를 사용하여 조정될 수 있습니다. NULL 허용 여부는 명시적으로 정의해야 합니다. @phystypebit인 경우 @nulltype을 지정하지 않으면 기본값은 NOT NULL입니다.

    [!참고]

    null_type 매개 변수는 이 데이터 형식에 대한 기본 NULL 허용 여부만 정의합니다. 테이블을 만드는 동안 별칭 데이터 형식을 사용할 때 NULL 허용 여부를 명시적으로 정의하면 정의된 NULL 허용 여부보다 우선적으로 적용됩니다. 자세한 내용은 ALTER TABLE(Transact-SQL)CREATE TABLE(Transact-SQL)을 참조하십시오.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

없음

주의

별칭 데이터 형식 이름은 데이터베이스 내에서 고유해야 하지만 이름이 서로 다른 별칭 데이터 형식은 같은 정의를 사용할 수 있습니다.

sp_addtype을 실행하면 특정 데이터베이스에 대한 sys.types 카탈로그 뷰에 나타나는 별칭 데이터 형식이 만들어집니다. 별칭 데이터 형식을 모든 새 사용자 정의 데이터베이스에서 사용할 수 있으려면 별칠 데이터 형식을 model에 추가합니다. 별칭 데이터 형식을 만든 다음 이 형식을 CREATE TABLE 또는 ALTER TABLE에서 사용할 수 있으며 별칭 데이터 형식에 기본값 및 규칙을 바인딩할 수 있습니다. sp_addtype을 사용하여 만드는 모든 스칼라 별칭 데이터 형식은 dbo 스키마에 포함됩니다.

별칭 데이터 형식은 데이터베이스의 기본 데이터 정렬을 상속합니다. 별칭 형식의 열과 변수의 데이터 정렬은 Transact-SQL CREATE TABLE, ALTER TABLE 및 DECLARE @local\_variable 문에 정의됩니다. 데이터베이스의 기본 데이터 정렬을 변경하면 해당 형식의 새 열과 변수에만 적용되고 기존 열과 변수의 데이터 정렬은 변경되지 않습니다.

보안 정보보안 정보

이전 버전과의 호환성을 위해 public 데이터베이스 역할에는 sp_addtype을 사용하여 만들어진 별칭 데이터 형식에 대해 REFERENCES 권한이 자동으로 부여됩니다. sp_addtype 대신 CREATE TYPE 문을 사용하여 별칭 데이터 형식을 만든 경우에는 이러한 권한이 자동으로 부여되지 않습니다.

별칭 데이터 형식은 SQL Server timestamp, table, xml, varchar(max), nvarchar(max) 또는 varbinary(max) 데이터 형식을 사용하여 정의될 수 없습니다.

사용 권한

db_owner 또는 db_ddladmin 고정 데이터베이스 역할의 멤버여야 합니다.

1.NULL 값을 허용하지 않는 별칭 데이터 형식 만들기

다음 예에서는 SQL Server 가 제공하는 varchar 데이터 형식을 기반으로 ssn(주민 등록 번호)이라는 별칭 데이터 형식을 만듭니다. ssn 데이터 형식은 11자리의 주민 등록 번호(999-99-9999)를 보유하는 열에 사용됩니다. 이 열은 NULL이 될 수 없습니다.

varchar(11)는 문장 부호(괄호)를 포함하고 있으므로 작은따옴표로 묶어야 합니다.

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

2.NULL 값을 허용하는 별칭 데이터 형식 만들기

다음 예에서는 NULL 값을 허용하는 birthday라는 별칭 데이터 형식(datetime 기반)을 만듭니다.

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

3.추가 별칭 데이터 형식 만들기

다음 예에서는 국내 및 국제 전화 및 팩스 번호 모두에 대해 두 개의 추가 별칭 데이터 형식인 telephone 및 fax를 만듭니다.

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

참고 항목

참조

데이터베이스 엔진 저장 프로시저(Transact-SQL)

CREATE TYPE(Transact-SQL)

CREATE DEFAULT(Transact-SQL)

CREATE RULE(Transact-SQL)

sp_bindefault(Transact-SQL)

sp_bindrule(Transact-SQL)

sp_droptype(Transact-SQL)

sp_rename(Transact-SQL)

sp_unbindefault(Transact-SQL)

sp_unbindrule(Transact-SQL)

시스템 저장 프로시저(Transact-SQL)