sql >> Databáze >  >> RDS >> Sqlserver

Mohou existovat omezení se stejným názvem v DB?

Ne – omezení je také databázový objekt, a proto musí být jeho název jedinečný.

Zkuste přidat např. název tabulky podle vašeho omezení, takže bude jedinečný.

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
)

V zásadě používáme "FK_"(podřízená tabulka)_(nadřazená tabulka)" k pojmenování omezení a jsme s touto konvencí pojmenování docela spokojeni.

Informace z MSDN

To, že názvy omezení musí být jedinečné pro schéma (tj. dvě různá schémata ve stejné databázi mohou obě obsahovat omezení se stejným názvem), není explicitně zdokumentováno. Spíše musíte předpokládat, že identifikátory databázových objektů musí být jedinečné v rámci obsahujícího schématu pokud není uvedeno jinak . Název omezení je tedy definován jako:

Porovnejte to s názvem index :

což výslovně zužuje rozsah identifikátoru.



  1. SQL/Oracle:když lze použít indexy ve více sloupcích

  2. Integrujte Firebase s PHP pro komunikaci v reálném čase

  3. Používaná verze SQL Serveru nepodporuje datový typ datetime2?

  4. MySQL Vyberte odlišné hodnoty ze 2 sloupců