DROP DEFAULT (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Удаляет одно или несколько пользовательских значений по умолчанию из текущей базы данных.

Внимание

DROP DEFAULTбудет удален в следующей версии Microsoft SQL Server. Не используйте DROP DEFAULT их в новых проектах и планируйте изменять приложения, которые уже их используют. Вместо этого используйте стандартные определения, которые можно создать, используя DEFAULT ключевое слово ALTER TABLE или CREATE TABLE.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

ЕСЛИ СУЩЕСТВУЕТ
Применимо к: SQL Server (SQL Server 2016 (13.x) до текущей версии.

Условное удаление таблицы только в том случае, если она уже существует.

schema_name
Имя схемы, которой принадлежит значение по умолчанию.

default_name
Имя существующего значения по умолчанию. Для просмотра списка значений по умолчанию выполните процедуру sp_help. Имена значений по умолчанию должны соответствовать требованиям к именам идентификаторов. Задание имени схемы значения по умолчанию необязательно.

Замечания

Перед удалением значения по умолчанию отвяжите его, выполнив процедуру sp_unbindefault, если это значение по умолчанию в настоящее время привязано к столбцу или псевдониму типа данных.

После удаления значения по умолчанию из столбца, в котором допускаются значения NULL, везде на место значения вставляется NULL, если добавляются строки и явно не предоставляется никакое значение. После удаления значения по умолчанию из столбца со свойством NOT NULL, если добавляются строки и явно не предоставляется никакое значение, возвращается сообщение об ошибке. Эти строки добавляются позже как часть типичного INSERT поведения оператора.

Разрешения

Для выполнения DROP DEFAULT, как минимум, пользователь должен иметь разрешение ALTER на схеме, к которой по умолчанию принадлежит.

Примеры

А. Удаление значения по умолчанию

Если стандартный элемент не был привязан к столбцу или типу псевдонимов, его можно просто убрать с помощью 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)