sp_addtype(Transact-SQL)
별칭 데이터 형식을 만듭니다.
중요 |
---|
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. CREATE TYPE을 대신 사용합니다. |
구문
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 허용 여부는 명시적으로 정의해야 합니다. @phystype이 bit인 경우 @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