Share via


DROP RULE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Quita una o más reglas definidas por el usuario de la base de datos actual.

Importante

DROP RULE se quitará en una versión futura de SQL Server. No use DROP RULE en el nuevo trabajo de desarrollo y planee modificar las aplicaciones que las usan actualmente. En su lugar, use CHECK restricciones que puede crear mediante la CHECK palabra clave CREATE TABLE o ALTER TABLE. Para más información, consulte Unique Constraints and Check Constraints.

Convenciones de sintaxis de Transact-SQL

Sintaxis

DROP RULE [ IF EXISTS ] { [ schema_name . ] rule_name } [ , ...n ]
[ ; ]

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

IF EXISTS

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores

Quita la regla condicionalmente solo si ya existe.

schema_name

Nombre del esquema al que pertenece la regla.

rule

Regla que se va a quitar. Los nombres de reglas deben ajustarse a las reglas de los identificadores. Especificar el nombre de esquema de la regla es opcional.

Observaciones

Para quitar una regla, primero desenlace la regla si ésta está enlazada actualmente a una columna o a un tipo de datos de alias. Para desenlace la regla, use sp_unbindrule. Si la regla está enlazada al intentar quitarla, se muestra un mensaje de error y se cancela la DROP RULE instrucción .

Después de quitar una regla, los datos nuevos escritos en las columnas que controlaba anteriormente la regla se escriben sin las restricciones de la regla. Los datos existentes no se ven afectados de ninguna manera.

La DROP RULE instrucción no se aplica a CHECK las restricciones. Para obtener más información sobre cómo quitar CHECK restricciones, vea ALTER TABLE.

Permisos

Para ejecutar DROP RULE, como mínimo, un usuario debe tener ALTER permiso en el esquema al que pertenece la regla.

Ejemplos

El ejemplo siguiente desenlaza primero y después quita la regla llamada VendorID_rule.

EXEC sp_unbindrule 'Production.ProductVendor.VendorID';
DROP RULE VendorID_rule;