DROP RULE (Transact-SQL)

Supprime une ou plusieurs règles définies par l'utilisateur de la base de données active.

Important

La fonction DROP RULE sera supprimée dans la prochaine version de MicrosoftSQL Server. Évitez de l'utiliser dans tout nouveau travail de développement et prévoyez la modification des applications qui s'en servent actuellement. À la place, utilisez des contraintes CHECK que vous pouvez créer à l'aide du mot clé CHECK de CREATE TABLE ou ALTER TABLE. Pour plus d'informations, consultez Contraintes CHECK

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • schema_name
    Nom du schéma auquel appartient la règle.

  • rule
    Règle à supprimer. Les noms de règle doivent suivre les règles applicables aux identificateurs. Pour plus d'informations sur les règles des identificateurs, consultez Utilisation des identificateurs comme noms d'objet. Vous n'êtes pas obligé de spécifier le nom du schéma de la règle.

Notes

Pour supprimer une règle, vous devez tout d'abord la dissocier si celle-ci est liée à une colonne ou à un type de données d'alias. Pour dissocier la règle, utilisez sp_unbindrule. Si la règle est liée lorsque vous tentez de la supprimer, un message d'erreur s'affiche et l'instruction DROP RULE est annulée.

Après la suppression d'une règle, les nouvelles données sont entrées sans les contraintes de la règle dans les colonnes gouvernées au préalable par celle-ci. Les données existantes ne sont pas affectées.

L'instruction DROP RULE ne s'applique pas aux contraintes CHECK. Pour plus d'informations sur la suppression des contraintes CHECK, consultez ALTER TABLE (Transact-SQL).

Autorisations

Pour exécuter DROP RULE, un utilisateur doit, au minimum, posséder l'autorisation ALTER sur le schéma auquel la règle appartient.

Exemple

L'exemple suivant dissocie et supprime la règle VendorID_rule.

USE AdventureWorks;
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