Compartir a través de


DROP RULE (Transact-SQL)

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

Nota importanteImportante

DROP RULE se quitará en la siguiente versión de Microsoft SQL Server. No lo use en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que usan actualmente DROP RULE. En su lugar, utilice restricciones CHECK que puede crear con la palabra clave CHECK de CREATE TABLE o ALTER TABLE. Para obtener más información, vea Restricciones CHECK.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • schema_name
    Es el nombre del esquema al que pertenece la regla.

  • rule
    Es la regla que se va a quitar. Los nombres de regla deben cumplir las mismas reglas que los identificadores. Para obtener más información sobre las reglas de los identificadores, vea Usar identificadores como nombres de objeto. Especificar el nombre de esquema de la regla es opcional.

Comentarios

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 desenlazar la regla, use sp_unbindrule. Si la regla está enlazada, al intentar quitarla se muestra un mensaje de error y se cancela la instrucción DROP RULE.

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 forma.

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

Permisos

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

Ejemplos

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

USE AdventureWorks2008R2;
GO
IF OBJECT_ID (N'VendorID_rule', N'R') IS NOT NULL
   BEGIN
      EXEC sp_unbindrule 'Production.ProductVendor.BusinessEntityID';
      DROP RULE VendorID_rule;
   END;
GO