다음을 통해 공유


DROP DEFAULT(Transact-SQL)

현재 데이터베이스에서 하나 이상의 사용자 정의 기본값을 제거합니다.

중요 정보중요

DROP DEFAULT는 Microsoft SQL Server의 다음 버전에서 제거될 예정이므로 향후 개발 작업에서는 DROP DEFAULT를 사용하지 않도록 하고 현재 이것을 사용하는 응용 프로그램은 수정하십시오. ALTER TABLE 또는 CREATE TABLE의 DEFAULT 키워드를 사용하여 만들 수 있는 기본 정의를 대신 사용하십시오. 자세한 내용은 DEFAULT 정의 만들기 및 수정을 참조하십시오.

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

구문

DROP DEFAULT { [ schema_name . ] default_name } [ ,...n ] [ ; ]

인수

  • schema_name
    기본값이 속한 스키마의 이름입니다.

  • default_name
    기존 기본값의 이름입니다. 존재하는 기본값의 목록을 보려면 sp_help를 실행합니다. 기본값은 식별자에 대한 규칙을 따라야 합니다. 기본 스키마 이름을 지정하는 것은 선택 사항입니다.

주의

열 또는 별칭 데이터 형식에 기본값이 바인딩된 경우 기본값을 삭제하기 전에 sp_unbindefault를 실행하여 기본값의 바인딩을 해제합니다.

Null 값이 허용되는 열에서 기본값을 삭제한 후 행을 추가하고 값을 명시적으로 제공하지 않으면 해당 위치에 NULL이 삽입됩니다. NOT NULL 열에서 기본값을 삭제한 후 행을 추가하고 값을 명시적으로 제공하지 않으면 오류 메시지가 반환됩니다. 이러한 행은 나중에 일반적인 INSERT 문을 실행하여 추가할 수 있습니다.

사용 권한

DROP DEFAULT를 실행하려면 적어도 기본값이 속한 스키마에 대한 ALTER 권한을 가지고 있어야 합니다.

1. 기본값 삭제

기본값이 열 또는 별칭 데이터 형식에 바인딩되지 않은 경우 단순히 DROP DEFAULT를 사용하여 삭제할 수 있습니다. 다음은 사용자가 만든 datedflt라는 기본값을 제거하는 예입니다.

USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'datedflt' 
            AND type = 'D')
   DROP DEFAULT datedflt
GO

2. 열에 바인딩된 기본값 삭제

다음은 Employee 테이블의 EmergencyContactPhone 열과 연결된 기본값의 바인딩을 해제하고 phonedflt라는 기본값을 삭제하는 예입니다.

USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'phonedflt' 
            AND type = 'D')
   BEGIN 
      EXEC sp_unbindefault 'Person.PersonPhone'
      DROP DEFAULT phonedflt
   END
GO