DROP DEFAULT(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
현재 데이터베이스에서 하나 이상의 사용자 정의 기본값을 제거합니다.
중요
DROP DEFAULT는 Microsoft SQL Server의 다음 버전에서 제거될 예정입니다. 향후 개발 작업에서는 DROP DEFAULT를 사용하지 않도록 하고 현재 이것을 사용하는 애플리케이션은 수정하십시오. ALTER TABLE 또는 CREATE TABLE의 DEFAULT 키워드를 사용하여 만들 수 있는 기본 정의를 대신 사용하십시오.
구문
DROP DEFAULT [ IF EXISTS ] { [ schema_name . ] default_name } [ ,...n ] [ ; ]
인수
IF EXISTS
적용 대상: SQL Server (SQL Server 2016(13.x) ~ 현재 버전).
이미 있는 경우에만 기본값을 조건부로 삭제합니다.
schema_name
기본값이 속한 스키마의 이름입니다.
default_name
기존 기본값의 이름입니다. 존재하는 기본값의 목록을 보려면 sp_help를 실행합니다. 기본값은 식별자에 대한 규칙을 따라야 합니다. 기본 스키마 이름을 지정하는 것은 선택 사항입니다.
설명
열 또는 별칭 데이터 형식에 기본값이 바인딩된 경우 기본값을 삭제하기 전에 sp_unbindefault를 실행하여 기본값의 바인딩을 해제합니다.
Null 값이 허용되는 열에서 기본값을 삭제한 후 행을 추가하고 값을 명시적으로 제공하지 않으면 해당 위치에 NULL이 삽입됩니다. NOT NULL 열에서 기본값을 삭제한 후 행을 추가하고 값을 명시적으로 제공하지 않으면 오류 메시지가 반환됩니다. 이러한 행은 나중에 일반적인 INSERT 문을 실행하여 추가할 수 있습니다.
사용 권한
DROP DEFAULT를 실행하려면 적어도 기본값이 속한 스키마에 대한 ALTER 권한을 가지고 있어야 합니다.
예제
A. 기본값 삭제
기본값이 열 또는 별칭 데이터 형식에 바인딩되지 않은 경우 단순히 DROP DEFAULT를 사용하여 삭제할 수 있습니다. 다음은 사용자가 만든 datedflt
라는 기본값을 제거하는 예입니다.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'datedflt'
AND type = 'D')
DROP DEFAULT datedflt;
GO
SQL Server 2016(13.x)부터는 다음 구문을 사용할 수 있습니다.
DROP DEFAULT IF EXISTS datedflt;
GO
B. 열에 바인딩된 기본값 삭제
다음은 EmergencyContactPhone
테이블의 Contact
열과 연결된 기본값의 바인딩을 해제하고 phonedflt
라는 기본값을 삭제하는 예입니다.
USE AdventureWorks2022;
GO
BEGIN
EXEC sp_unbindefault 'Person.Contact.Phone'
DROP DEFAULT phonedflt
END;
GO
참고 항목
CREATE DEFAULT(Transact-SQL)
sp_helptext(Transact-SQL)
sp_help(Transact-SQL)
sp_unbindefault(Transact-SQL)