2013-08-14 10 views
8

Sono totalmente nuovo per SQL Server, utilizzare la versione 2012.Come creare vincolo UNIQUE in SSMS 2012

ho una tabella con la seguente struttura:

Attendance 
-------------- 
TagID  (FK) 
SessionID (FK)  
ScanningTime 

Ho bisogno di creare un vincolo univoco basato su due colonne (TagID e SessionID)

Non sono sicuro di come farlo. Ho creato una query e provato questo codice:

ALTER TABLE Attendance ADD CONSTRAINT UNIQUE NONCLUSTERED 
(
    TagID, 
    SessionID 
) 

Ma quando provo ad eseguirlo, ricevo questo errore:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'UNIQUE'.

Qual è il modo corretto per modificare la tabella utilizzando SSMS? Devo creare una query ogni volta che voglio farlo?

risposta

9

Eri quasi arrivato. Se si utilizza la parola chiave constraint, è necessario fornire un nome.

ALTER TABLE Attendance ADD CONSTRAINT UQ_TagID_SessionID UNIQUE NONCLUSTERED 
(
    TagID, 
    SessionID 
) 

Oppure, in alternativa

ALTER TABLE Attendance ADD UNIQUE NONCLUSTERED 
(
    TagID, 
    SessionID 
) 

anche funziona, ma poi il vincolo è automatico denominato

+0

Grazie, potresti anche rispondere alla mia domanda in grassetto? – jaspernorth

+0

Suggerisco caldamente i vincoli di denominazione - prima opzione –

+0

@jaspernorth - RE: La tua domanda in grassetto la mia preferenza è generalmente quella di evitare il designer e usare TSQL ma è anche possibile farlo visivamente in SSMS attraverso il dialogo [indexes and keys] (http://technet.microsoft.com/ it-it/library/ms187019.aspx). –

4

Se si preferisce farlo tramite interfaccia grafica invece che attraverso ALTER dichiarazioni, è anche possibile fare clic destro su la tabella in Esplora oggetti, selezionare "Progettazione", quindi fare clic con il pulsante destro del mouse su uno sfondo vuoto e selezionare "Indici/Chiavi". Si aprirà una finestra di dialogo in cui selezionare il tasto "" unico" come tipo.

Facendo modifiche tramite GUI è un modo veloce per le azioni si tende a fare di rado e quindi non siete sicuri circa la sintassi.

Molti Le finestre di dialogo di Management Studio, ma non questa, probabilmente in quanto una finestra di dialogo secondaria della finestra di dialogo di progettazione tabella, hanno un pulsante "Script" in alto a sinistra, che scrive l'azione che si sta configurando tramite GUI in una finestra di query in modo che sia possibile salvali per future attività simili, oppure fai una copia e incollali, nel caso avessi bisogno di azioni simili

+0

Questo è molto utile. Grazie per il tuo aiuto, signore! – jaspernorth

+1

Dopo aver chiuso la finestra di dialogo, il vincolo non viene creato immediatamente, ma solo quando si salva/chiude il designer di tabelle. Pertanto, è possibile fare nuovamente clic con il pulsante destro del mouse su uno sfondo vuoto e selezionare l'opzione "Genera script di modifica ...". –

Problemi correlati