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 ] [ ; ]  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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 на схему, к которой принадлежит значение по умолчанию.

Примеры

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

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