Frage

Wie erstelle ich eine eindeutige Einschränkung auf einer vorhandenen Tabelle in SQL Server 2005?

Ich suche sowohl in der TSQL und wie es in dem Datenbank-Schema zu tun.

Andere Tipps

In SQL Server Management Studio Express:

  • Rechtsklick auf Tabelle, wählen Sie Ändern oder Entwurf (höhere Versionen)
  • Rechtsklick Feld, wählen Sie Indizes / Schlüssel ...
  • Klicken Sie auf Hinzufügen
  • Spalten , wählen Sie die Feldnamen Sie wollen eindeutig sein.
  • Typ , wählen Sie Eindeutiger Schlüssel .
  • Klicken Sie auf Schließen , Speichern die Tabelle.
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]

Ich fand auch tun können Sie dies über die Datenbank-Diagramme.

Mit dem Recht der Tabelle klicken und die Auswahl Indizes / Schlüssel ...

Klicken Sie auf die Schaltfläche ‚Hinzufügen‘, und die Spalten auf die Spalte (n) ändern möchten Sie einzigartig machen.

Ändern ist einzigartig auf Ja.

close Klicken und das Diagramm speichern, und es wird sie in die Tabelle.

Sie suchen etwas wie das folgende

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN Docs

Um eine UNIQUE-Einschränkung auf einer oder mehr Spalten zu erstellen, wenn die Tabelle bereits erstellt wird, verwenden Sie die folgende SQL:

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

Zur Benennung einer UNIQUE-Einschränkung für obige Abfrage erlaubt

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

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

Im Management Studio Diagramm, das die Tabelle wählen, klicken Sie rechts neue Spalte hinzufügen, wenn gewünscht, einen Rechtsklick auf die Spalte und wählen Sie „Check Constraints“, dort können Sie hinzufügen.

In einigen Situationen kann es wünschenswert sein, die Eindeutiger Schlüssel, um sicherzustellen, ist es existiert nicht, bevor zu erstellen. In solchen Fällen könnte das Skript unten helfen:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top