SSMS
 sql >> Datenbank >  >> Database Tools >> SSMS

Mit SQL Server Management Studio kann ich NICHT mehrere Fremdschlüssel für mehrere Primärschlüssel erstellen

Ich denke, Sie müssen einen seltsamen Fehler in SSMS getroffen haben. Ich konnte Ihr Schema mit SSMS 2014 ohne Fehler erstellen. Beim Hinzufügen des neuen FK wurden die drei zusammengesetzten Primärschlüsselspalten vorab ausgefüllt. Ich habe darauf geachtet, dass sie alle ausgeblendet waren, bevor ich begann, die beiden Spalten im FK hinzuzufügen. Vielleicht dachte SSMS, dass eine der leeren Zeilen noch Daten enthält.

Bearbeiten:Ich hatte nur noch einen Gedanken, SSMS ist dafür bekannt, alle Änderungen zwischenzuspeichern, die beim Bearbeiten einer Tabelle vorgenommen werden. Zum Beispiel, wenn Sie zwei Tabellen ändern und beide Bearbeitungsfenster geöffnet haben. Dann ändern Sie den PK in einem Fenster und versuchen dann, ihn im zweiten Fenster zu referenzieren, es wird ein Fehler auftreten, weil es zwischengespeichert hat, was das Schema für die erste Tabelle war, als das Fenster zum ersten Mal geöffnet wurde.

Hier ist meine generierte DDL:

CREATE TABLE [dbo].[AppRegion](
    [appname] [nvarchar](50) NOT NULL,
    [isocode] [char](5) NOT NULL,
 CONSTRAINT [PK_AppRegion] PRIMARY KEY CLUSTERED 
(
    [appname] ASC,
    [isocode] ASC
)
) ON [PRIMARY]

CREATE TABLE [dbo].[Translation](
    [ResourceKey] [nvarchar](128) NOT NULL,
    [appname] [nvarchar](50) NOT NULL,
    [isocode] [char](5) NOT NULL,
    [text] [nvarchar](400) NULL,
 CONSTRAINT [PK_Translation] PRIMARY KEY CLUSTERED 
(
    [ResourceKey] ASC,
    [appname] ASC,
    [isocode] ASC
)
) ON [PRIMARY]

ALTER TABLE [dbo].[Translation]   ADD  CONSTRAINT [FK_Translation_AppRegion] FOREIGN KEY([appname], [isocode])
REFERENCES [dbo].[AppRegion] ([appname], [isocode])