Поделиться через


DROP DEFAULT (Transact-SQL)

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

Важное примечаниеВажно!

Инструкция DROP DEFAULT в следующей версии сервера Microsoft SQL Server будет удалена. Не используйте инструкции DROP DEFAULT в новых разработках и запланируйте модификацию приложений, использующих эту инструкцию в настоящее время. Вместо нее используйте определения по умолчанию, которые могут создаваться при помощи ключевого слова DEFAULT инструкций ALTER TABLE и CREATE TABLE. Дополнительные сведения см. в разделе Изменение и создание определений 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 на схему, к которой принадлежит значение по умолчанию.

Примеры

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

Если значение по умолчанию не привязано к столбцу или псевдониму типа данных, оно может быть удалено при помощи инструкции DROP DEFAULT. В следующем примере удаляется созданное пользователем значение по умолчанию с именем datedflt.

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

Б. Удаление значения по умолчанию, привязанного к столбцу

В следующем примере отвязывается значения по умолчанию, связанное со столбцом EmergencyContactPhone таблицы Employee, затем удаляется само значение с именем 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