DROP RULE (Transact-SQL)
Applies to:
SQL Server
Azure SQL Managed Instance
Removes one or more user-defined rules from the current database.
Important
DROP RULE
will be removed in a future version of SQL Server. Don't use DROP RULE
in new development work, and plan to modify applications that currently use them. Instead, use CHECK
constraints that you can create by using the CHECK
keyword of CREATE TABLE or ALTER TABLE. For more information, see Unique Constraints and Check Constraints.
Transact-SQL syntax conventions
Syntax
DROP RULE [ IF EXISTS ] { [ schema_name . ] rule_name } [ , ...n ]
[ ; ]
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
Arguments
IF EXISTS
Applies to: SQL Server 2016 (13.x) and later versions
Conditionally drops the rule only if it already exists.
schema_name
The name of the schema to which the rule belongs.
rule
The rule to be removed. Rule names must comply with the rules for identifiers. Specifying the rule schema name is optional.
Remarks
To drop a rule, first unbind it if the rule is currently bound to a column or to an alias data type. To unbind the rule, use sp_unbindrule
. If the rule is bound when you try to drop it, an error message is displayed and the DROP RULE
statement is canceled.
After a rule is dropped, new data entered into the columns previously governed by the rule is entered without the constraints of the rule. Existing data isn't affected in any way.
The DROP RULE
statement doesn't apply to CHECK
constraints. For more information about dropping CHECK
constraints, see ALTER TABLE.
Permissions
To execute DROP RULE
, at a minimum, a user must have ALTER
permission on the schema to which the rule belongs.
Examples
The following example unbinds and then drops the rule named VendorID_rule
.
EXEC sp_unbindrule 'Production.ProductVendor.VendorID';
DROP RULE VendorID_rule;