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 ] [ ; ]
Аргументы
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)