sql >> Database >  >> RDS >> Sqlserver

Kunnen er beperkingen met dezelfde naam in een DB zijn?

Nee - een beperking is ook een database-object en daarom moet de naam uniek zijn.

Probeer bijv. de tabelnaam aan uw beperking, op die manier zal het uniek zijn.

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
)

We gebruiken in principe "FK_"(child table)_(parent table)" om de beperkingen een naam te geven en zijn best tevreden met deze naamgevingsconventie.

Informatie van MSDN

Dat constraintnamen uniek moeten zijn voor het schema (dwz. twee verschillende schema's in dezelfde database kunnen beide een constraint met dezelfde naam bevatten) is niet expliciet gedocumenteerd. U moet er eerder van uitgaan dat de id's van database-objecten uniek moeten zijn binnen het bevattende schema tenzij anders aangegeven . De naam van de beperking is dus gedefinieerd als:

Vergelijk dit met de naam van een index :

wat expliciet de reikwijdte van de identifier verkleint.



  1. Blob-afbeelding weergeven in html met angularjs

  2. Kan geen toegang krijgen tot een exemplaar van SQL Server 2008 R2 op afstand

  3. Python MySQLdb-updatequery mislukt

  4. Slaapstand Jpa - beperking schending uitzondering op primaire sleutel (reeks)