Nein - eine Einschränkung ist auch ein Datenbankobjekt, und daher muss ihr Name eindeutig sein.
Versuchen Sie, z. den Tabellennamen zu Ihrer Einschränkung, damit er eindeutig ist.
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
)
Wir verwenden grundsätzlich "FK_"(untergeordnete Tabelle)_(übergeordnete Tabelle)", um die Einschränkungen zu benennen, und sind mit dieser Namenskonvention ziemlich zufrieden.
Informationen von MSDN
Dass Einschränkungsnamen für das Schema eindeutig sein müssen (dh zwei verschiedene Schemas in derselben Datenbank können beide eine Einschränkung mit demselben Namen enthalten), ist nicht explizit dokumentiert. Vielmehr müssen Sie davon ausgehen, dass die Bezeichner von Datenbankobjekten innerhalb des enthaltenden Schemas eindeutig sein müssen, sofern nicht anders angegeben . Der Einschränkungsname ist also definiert als:
Vergleichen Sie dies mit dem Namen eines Index :
was den Geltungsbereich des Bezeichners explizit einschränkt.