come posso creare una chiave composita con SQL Server Management Studio?


163

come posso creare una chiave composita con SQL Server Management Studio?

Voglio che due colonne INT formino l'identità (unica) per una tabella

Risposte:


356

inserisci qui la descrizione dell'immagine

  1. Apri la scheda della tabella di progettazione
  2. Evidenzia i tuoi due campi INT (Ctrl / Maiusc + clic sui blocchi grigi nella prima colonna)
  3. Tasto destro del mouse -> Imposta chiave primaria

4
Per evidenziare più campi, fare clic sui blocchi davanti alle colonne "nome colonna" e "tipo di dati" e simili. Ctrl / Maiusc + Fare clic sui campi del nome della colonna non farà effettivamente nulla.
Pimgd,

3
Quindi se uno è una stringa e l'altro è un int, non è possibile? Non sembra essere ...
B. Clay Shannon,

3
Vorrei sottovalutare questo, ma poi mi sono reso conto che l'OP ha specificamente chiesto come farlo in SSMS. Dovresti sempre scriptare le modifiche al database + se usi strumenti come questo, non imparerai mai come fare le modifiche da solo
JonnyRaa,

2
@JonnyLeeds è un cavallo molto alto che sei lì. Cosa c'è che non va nella GUI se questo è ciò che la gente preferisce?
leinad13,

4
@ leinad13 Devo aver avuto una brutta giornata! Ma il problema principale è che non sono ripetibili e generalmente significa che le persone stanno apportando modifiche e modifiche ad hoc incontrollate per risolvere i problemi di database / schema. Questo è un brutto segno: sono privi di documenti (ad esempio, avendo il codice da correggere scritto e verificato nel controllo della versione e / o avendo uno strumento che applica automaticamente le modifiche giuste a qualunque sia la versione del database) e se ne hai più di uno installazione, allora sei nei guai seri non appena i database non avranno lo stesso schema
JonnyRaa,

63

ecco un po 'di codice per farlo:

-- Sample Table
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO

-- Add Constraint
ALTER TABLE myTable
    ADD CONSTRAINT pk_myConstraint PRIMARY KEY (Column1,Column2)
GO

Ho aggiunto il vincolo come un'istruzione separata perché presumo che la tua tabella sia già stata creata.


Immagino che questa risposta sia adatta dal momento che puoi eseguirla nella finestra Query di SSMS ...;)
dance2die,

2
Scripting FTW e per la denominazione esplicita! Le definizioni esterne ADD PRIMARY KEYe interne PRIMARY KEYdaranno nomi casuali alle chiavi, il che può rendere doloroso il bajingo per capire a quale appartiene se non hai il diagramma db + le tabelle.
Daevin,

35
create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)

14

In modalità progettazione (fare clic con il pulsante destro del mouse sulla selezione selezionare modifica) evidenziare entrambe le colonne facendo clic con il pulsante destro del mouse e selezionare imposta chiave primaria


7

Apri la progettazione tabella in SQL Server Management Studio (fai clic con il pulsante destro del mouse sulla tabella e seleziona "Progettazione")

Tenendo premuto il tasto Ctrl evidenziare due o più colonne nel margine sinistro della tabella

Premi il piccolo 'tasto' sulla barra dei menu standard in alto

Hai finito..

:-)


5

Evidenzia entrambe le righe nella vista di progettazione della tabella e fai clic sull'icona della chiave, ora saranno una chiave primaria composita.

Non sono sicuro della tua domanda, ma solo una colonna per tabella può essere una colonna IDENTITY, non entrambe.


4
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.