Posso creare correttamente la chiave primaria composita in sql server management studio 2012 selezionando due colonne (OrderId, CompanyId) e fare clic con il pulsante destro del mouse e impostare come chiave primaria. Ma non so come creare una chiave esterna su due colonne (OrderId, CompanyId) in un'altra tabella utilizzando SQL Server Management Studio 2012.Come creare una chiave esterna composita in sql server management studio 2012
risposta
In Esplora oggetti, andare al vostro tavolo e selezionare Keys > New Foreign Key
dal menu contestuale:
Nella finestra di dialogo che si apre, fare clic sul Aggiungi pulsante per creare una nuova chiave esterna :
Dategli un nome significativo e quindi fare clic sul ... pulsante per aprire la finestra di dialogo Tables and Columns specification
:
compilare le colonne necessarie per la Capogruppo e le tabelle figlio, fare clic su OK e il gioco è fatto!
Oppure molto più semplice ed efficiente - utilizzare uno script T-SQL!
ALTER TABLE dbo.OtherTable
ADD CONSTRAINT FK_OtherTable_ParentTable
FOREIGN KEY(OrderId, CompanyId) REFERENCES dbo.ParentTable(OrderId, CompanyId)
Se si apre il sottomenu per una tabella nell'elenco tabella in Management Studio, c'è un articolo Keys
. Se fai clic con il tasto destro del mouse su questo, ottieni New Foreign Key
come opzione. Se si seleziona questa opzione, si apre la finestra di dialogo Relazioni chiave esterna. Nella sezione (Generale), troverai Tables And Columns Specifications
. Se apro questo, posso selezionare più colonne.
Aggiungere due chiavi esterne separate per ogni colonna.
Se nella tabella di riferimento è presente solo una chiave primaria composta e nessun'altra chiave dichiarata, non è possibile creare una chiave esterna che fa riferimento solo a una delle colonne. –
è possibile? Io non la penso così! –
Conosco la query precedente, ma il problema è che voglio farlo visivamente. Hai menzionato la chiave straniera nello screenshot. la sua multa, ma in caso di relazione di chiave esterna primaria composita non menzionata negli screenshot ...... – user3004110
@ user3004110: se è necessario fare riferimento a una chiave primaria composta, è sufficiente selezionare più di una colonna nella finestra di dialogo per definire la chiave esterna! –
La GUI non funzionava, lo script T-SQL funzionava immediatamente –