Non - une contrainte est également un objet de base de données et son nom doit donc être unique.
Essayez d'ajouter par ex. le nom de la table à votre contrainte, ainsi elle sera unique.
CREATE TABLE BankAccount
(
BankAccountID INT PRIMARY KEY,
EmployerCode VARCHAR(20) NOT NULL,
Amount MONEY NOT NULL,
CONSTRAINT FK_BankAccount_Employer
FOREIGN KEY (EmployerCode) REFERENCES Employer
)
Nous utilisons essentiellement "FK_"(table enfant)_(table parent)" pour nommer les contraintes et sommes assez satisfaits de cette convention de nommage.
Informations de MSDN
Le fait que les noms de contraintes doivent être uniques au schéma (c'est-à-dire que deux schémas différents dans la même base de données peuvent tous deux contenir une contrainte avec le même nom) n'est pas explicitement documenté. Vous devez plutôt supposer que les identifiants des objets de base de données doivent être uniques dans le schéma conteneur sauf indication contraire . Ainsi, le nom de la contrainte est défini comme :
Comparez cela au nom d'un index :
qui restreint explicitement la portée de l'identifiant.