sp_unbindrule (Transact-SQL)
Dissocie une règle d'une colonne ou d'un type de données alias dans la base de données active.
Important
Cette fonctionnalité sera supprimée dans la prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité. Au lieu de cela, nous recommandons de créer des définitions par défaut à l'aide du mot clé DEFAULT dans les instructions ALTER TABLE ou CREATE TABLE. Pour plus d'informations, consultez Création et modification des définitions DEFAULT.
Syntaxe
sp_unbindrule [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
Arguments
[ @objname= ] 'object_name'
Nom de la table et de la colonne ou du type de données alias dont la règle est dissociée. object_name est de type nvarchar(776), sans valeur par défaut. SQL Server essaie d'abord de résoudre en noms de colonnes les identificateurs en deux parties, puis en types de données alias. Lorsque vous dissociez une règle d'un type de données alias, les colonnes de ce type de données ayant la même règle sont également dissociées. Les colonnes de ce type de données auxquelles des règles sont directement liées ne sont pas affectées.[!REMARQUE]
object_name peut contenir les crochets [] comme caractères de délimitation des identificateurs. Pour plus d'informations, consultez Identificateurs délimités (Moteur de base de données).
[ @futureonly= ] 'futureonly_flag'
S'utilise seulement pour dissocier une règle d'un type de données alias. L'argument futureonly_flag est de type varchar(15). Sa valeur par défaut est NULL. Lorsque futureonly_flag est de type futureonly, les colonnes existantes de ce type de données ne perdent pas la règle spécifiée.
Valeurs des codes renvoyés
0 (succès) ou 1 (échec)
Notes
Pour afficher le texte d'une règle, exécutez sp_helptext en donnant le nom de la règle comme paramètre.
Lorsque vous dissociez une règle, les informations relatives à la liaison sont supprimées de la table sys.columns si cette règle était liée à une colonne, et de la table sys.types si elle était liée à un type de données défini par l'utilisateur.
Lorsqu'une règle est dissociée d'un type de données alias, elle l'est aussi des colonnes ayant ce type de données alias. La règle peut toujours être associée aux colonnes dont les types de données ont été modifiés ultérieurement par la clause ALTER COLUMN d'une instruction ALTER TABLE. Dans ce cas, vous devez dissocier spécifiquement la règle de ces colonnes à l'aide de la procédure sp_unbindrule et spécifier le nom de la colonne.
Autorisations
La dissociation d'une règle d'une colonne de table nécessite l'autorisation ALTER sur la table. La dissociation d'une règle d'un type de données alias nécessite l'autorisation CONTROL sur le type ou l'autorisation ALTER sur le schéma auquel le type appartient.
Exemples
A. Dissociation d'une règle d'une colonne
L'exemple suivant dissocie la règle de la colonne startdate de la table employees.
EXEC sp_unbindrule 'employees.startdate'
B. Dissociation d'une règle d'un type de données alias
L'exemple suivant dissocie la règle du type de données alias ssn. Il dissocie la règle des colonnes existantes et à venir de ce type.
EXEC sp_unbindrule ssn
C. Utilisation de l'argument futureonly_flag
L'exemple suivant dissocie la règle du type de données alias ssn sans affecter les colonnes ssn existantes.
EXEC sp_unbindrule 'ssn', 'futureonly'
D. Utilisation d'identificateurs délimités
Cet exemple montre l'utilisation d'identificateurs délimités dans le paramètre object_name .
CREATE TABLE [t.4] (c1 int) -- Notice the period as part of the table
-- name.
GO
CREATE RULE rule2 AS @value > 100
GO
EXEC sp_bindrule rule2, '[t.4].c1' -- The object contains two
-- periods; the first is part of the table name and the second
-- distinguishes the table name from the column name.
GO
EXEC sp_unbindrule '[t.4].c1'