2013-08-14 6 views
8

Ich bin völlig neu für SQL Server erstellen, verwende ich Version 2012.Wie UNIQUE-Einschränkung in SSMS 2012

Ich habe eine Tabelle mit der folgenden Struktur:

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

Ich brauche eine erstellen Unique Constraint basierend auf zwei Spalten (TagID und SessionID)

Ich bin mir nicht sicher, wie dies zu tun ist. Ich habe eine Abfrage erstellt und versucht, diesen Code:

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

Aber wenn ich versuche, es auszuführen, erhalte ich diese Fehlermeldung:

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

Was ist der richtige Weg, um die Tabelle mit SSMS zu verändern? Soll ich jedes Mal eine Abfrage erstellen?

Antwort

9

Sie waren fast da. Wenn Sie das Schlüsselwort constraint verwenden, müssen Sie einen Namen angeben.

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

Oder alternativ

ALTER TABLE Attendance ADD UNIQUE NONCLUSTERED 
(
    TagID, 
    SessionID 
) 

funktioniert auch dann aber die Einschränkung ist auto

namens
+0

Danke, können Sie meine Frage auch in Fettdruck beantworten? – jaspernorth

+0

Ich würde dringend vorschlagen, Einschränkungen zu benennen - erste Option. –

+0

@jaspernorth - RE: Ihre Frage ist, dass ich in der Regel den Designer meiden und TSQL verwenden möchte, aber es ist auch möglich, dies visuell in SSMS über den [indexes and keys dialogue] zu tun (http://technet.microsoft.com/) de-de/library/ms187019.aspx). –

4

Wenn Sie lieber über die GUI zu tun, anstatt über ALTER-Anweisungen können Sie auch mit der rechten Maustaste auf Wählen Sie im Objekt-Explorer "Design", klicken Sie mit der rechten Maustaste irgendwo auf den leeren Hintergrund und wählen Sie "Indizes/Schlüssel". Dies öffnet einen Dialog, in dem Sie „“ Eindeutiger Schlüssel“als Typ wählen.

Änderungen via GUI zu tun, ist eine schnelle Möglichkeit für Aktionen, die Sie neigen dazu, nur selten zu tun und sind daher nicht sicher über die Syntax.

Viele Management Studio-Dialoge - aber nicht diese, da es sich wahrscheinlich um einen Unterdialog des Tabellen-Designer-Dialogs handelt - haben oben links eine Schaltfläche "Skript", die die über GUI konfigurierte Aktion in ein Abfragefenster schreibt speichern Sie sie für zukünftige similr Aufgaben, oder kopieren Sie sie und fügen Sie sie ein, wenn Sie ähnliche Aktionen benötigen

+0

Dies ist sehr hilfreich. Danke für Ihre Hilfe, Sir! – jaspernorth

+1

Nachdem Sie diesen Dialog geschlossen haben, wird die Einschränkung nicht sofort erstellt, sondern nur, wenn Sie den Tabellendesigner speichern/schließen. Daher können Sie mit der rechten Maustaste erneut auf einen leeren Hintergrund klicken und die Option "Change Script ..." auswählen. –