it-swarm-eu.dev

SQL Server 2005 Wie erstellen Sie eine eindeutige Einschränkung?

Wie erstelle ich in SQL Server 2005 eine eindeutige Einschränkung für eine vorhandene Tabelle?

Ich suche sowohl nach dem TSQL als auch nach dem Datenbankdiagramm.

180
David Basarab

Der SQL-Befehl lautet:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

Siehe die vollständige Syntax hier .

Wenn Sie es von einem Datenbankdiagramm aus machen wollen:

  • klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie "Indizes/Schlüssel".
  • klicken Sie auf die Schaltfläche Hinzufügen, um einen neuen Index hinzuzufügen
  • geben Sie die erforderlichen Informationen in den Eigenschaften auf der rechten Seite ein:
    • die gewünschten Spalten (klicken Sie auf die Schaltfläche mit den Auslassungspunkten)
    • set ist eindeutig auf Ja
    • gib ihm einen passenden Namen
272
Rory

In SQL Server Management Studio Express:

  • Klicken Sie mit der rechten Maustaste auf die Tabelle, und wählen Sie Modify oder Design (For Later Versions)
  • Rechtsklick-Feld, wählen Sie Indizes/Schlüssel ...
  • Klicken Sie auf Hinzufügen
  • Wählen Sie für Columns den Feldnamen aus, der eindeutig sein soll.
  • Wählen Sie für Typ Eindeutiger Schlüssel .
  • Klicken Sie auf Schließen , Speichern die Tabelle.
84
James Lawruk
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
28
WildJoe

Warnung: In der Spalte, die Sie als eindeutig definiert haben, darf sich nur eine Nullzeile befinden.

Sie können dies mit einem gefilterten Index in SQL 2008 tun:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

Siehe Der Feldwert muss eindeutig sein, es sei denn, er ist NULL für einen Antwortbereich.

15
Squirrel
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
13
Ivan Bosnic

Ich fand auch, dass Sie dies über die Datenbankdiagramme tun können.

Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Indizes/Schlüssel ...

Klicken Sie auf die Schaltfläche "Hinzufügen" und ändern Sie die Spalten in die Spalten, die Sie einzigartig machen möchten.

Änderung ist eindeutig zu Ja.

Klicken Sie auf Schließen und speichern Sie das Diagramm. Das Diagramm wird der Tabelle hinzugefügt.

10
David Basarab

Sie suchen nach etwas wie dem Folgenden

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN-Dokumente

8
Thunder3

Verwenden Sie die folgende SQL-Anweisung, um eine UNIQUE-Einschränkung für eine oder mehrere Spalten zu erstellen, wenn die Tabelle bereits erstellt ist:

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Um die Benennung einer UNIQUE-Einschränkung für die obige Abfrage zuzulassen

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Die von MySQL/SQL Server/Oracle/MS Access unterstützte Abfrage.

6
Rafiq

Wählen Sie im Management Studio-Diagramm die Tabelle aus, klicken Sie mit der rechten Maustaste, um eine neue Spalte hinzuzufügen, klicken Sie mit der rechten Maustaste auf die Spalte, und wählen Sie "Einschränkungen prüfen" aus.

5
Gibbons

In einigen Situationen kann es wünschenswert sein, sicherzustellen, dass der eindeutige Schlüssel nicht vorhanden ist, bevor Sie ihn erstellen. In solchen Fällen kann das folgende Skript hilfreich sein:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
0
Mario Vázquez