DROP DEFAULT (Transact-SQL)
Удаляет одно или несколько пользовательских значений по умолчанию из текущей базы данных.
Важно! |
---|
Инструкция DROP DEFAULT в следующей версии сервера MicrosoftSQL Server будет удалена. Не используйте инструкции DROP DEFAULT в новых разработках и запланируйте модификацию приложений, использующих эту инструкцию в настоящее время. Вместо нее используйте определения по умолчанию, которые могут создаваться при помощи ключевого слова DEFAULT инструкций ALTER TABLE и CREATE TABLE. Дополнительные сведения см. в разделе Изменение и создание определений DEFAULT. |
Синтаксис
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 AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'datedflt'
AND type = 'D')
DROP DEFAULT datedflt
GO
Б. Удаление значения по умолчанию, привязанного к столбцу
В следующем примере отвязывается значения по умолчанию, связанное со столбцом EmergencyContactPhone таблицы Employee, затем удаляется само значение с именем phonedflt.
USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'phonedflt'
AND type = 'D')
BEGIN
EXEC sp_unbindefault 'Person.Contact.Phone'
DROP DEFAULT phonedflt
END
GO