DROP RULE (Transact-SQL)
Удаляет из текущей базы данных одно или несколько пользовательских правил.
Важно! |
---|
Инструкция DROP RULE будет удалена в следующей версии Microsoft SQL Server.Не следует использовать инструкцию DROP RULE при создании новых приложений, и рекомендуется запланировать изменение тех приложений, в которых она используется.Вместо этого следует использовать проверочные ограничения, которые создаются при помощи ключевого слова CHECK в инструкциях CREATE TABLE и ALTER TABLE.Дополнительные сведения см. в разделе Ограничения уникальности и проверочные ограничения. |
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
DROP RULE { [ schema_name . ] rule_name } [ ,...n ] [ ; ]
Аргументы
schema_name
Имя схемы, к которой относится правило.rule
Удаляемое правило. Имена правил должны соответствовать требованиям, предъявляемым к идентификаторам. Указание имени схемы для правил необязательно.
Замечания
Если правило привязано к столбцу или псевдониму типа данных, то перед его удалением необходимо удалить привязку при помощи хранимой процедуры sp_unbindrule. Если в момент удаления правило привязано, то выводится сообщение об ошибке, и инструкция DROP RULE отменяется.
После удаления правила новые данные, вводимые в столбцы, ранее управлявшиеся этим правилом, больше им не ограничиваются. На существующие данные удаление правила не влияет.
Инструкция DROP RULE не применяется к проверочным ограничениям. Дополнительные сведения об удалении проверочных ограничений см. в разделе ALTER TABLE (Transact-SQL).
Разрешения
Для выполнения инструкции DROP RULE пользователь, как минимум, должен иметь разрешение ALTER на схему, которой принадлежит правило.
Примеры
Следующий пример отменяет привязку и затем удаляет правило с именем VendorID_rule.
USE AdventureWorks2012;
GO
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'VendorID_rule'
AND type = 'R')
BEGIN
EXEC sp_unbindrule 'Production.ProductVendor.VendorID'
DROP RULE VendorID_rule
END;
GO