sql >> Database teknologi >  >> RDS >> Sqlserver

Kan der være begrænsninger med samme navn i en DB?

Nej - en begrænsning er også et databaseobjekt, og derfor skal dens navn være unikt.

Prøv at tilføje f.eks. tabelnavnet til din begrænsning, på den måde vil det være unikt.

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
)

Vi bruger grundlæggende "FK_"(undertabel)_(overordnet tabel)" til at navngive begrænsningerne og er ret tilfredse med denne navnekonvention.

Oplysninger fra MSDN

At begrænsningsnavne skal være unikke for skemaet (dvs. to forskellige skemaer i samme database kan begge indeholde en begrænsning med samme navn) er ikke eksplicit dokumenteret. I stedet skal du antage, at identifikatorerne for databaseobjekter skal være unikke i det indeholdende skema medmindre andet er angivet . Så begrænsningsnavnet er defineret som:

Sammenlign dette med navnet på et indeks :

som eksplicit indsnævrer identifikatorens omfang.



  1. Hvordan er det muligt, at SQL-forespørgsel og ActiveRecord.find_by_sql returnerer forskellige resultater?

  2. Sådan undslipper du enkelte citater i Doktrin

  3. Valg af flere borde vs. JOIN (ydelse)

  4. Design af prisreglerdatabase til hotelreservationssystem