Erstellen von CHECK-Einschränkungen

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Sie können mit SQL Server Management Studio und Transact-SQL eine Prüfeinschränkung in einer Tabelle erstellen, um die Datenwerte anzugeben, die in mindestens einer Spalte in SQL Server zulässig sind. Weitere Informationen zum Hinzufügen von Spalteneinschränkungen finden Sie unter ALTER TABLE column_constraint.

Weitere Informationen finden Sie unter UNIQUE-Einschränkungen und CHECK-Einschränkungen.

Hinweise

Um vorhandene CHECK-Einschränkungen abzufragen, verwenden Sie die Systemkatalogsicht sys.check_constraints

Berechtigungen

Erfordert die ALTER-Berechtigungen für die Tabelle.

Verwenden von SQL Server Management Studio

  1. Erweitern Sie im Objekt-Explorerdie Tabelle, der Sie eine CHECK-Einschränkung hinzufügen möchten, klicken Sie mit der rechten Maustaste auf Einschränkungen, und klicken Sie auf Neue Einschränkung.

  2. Klicken Sie im Dialogfeld Einschränkungen überprüfen auf das Feld Ausdruck und dann auf die Auslassungspunkte (…).

  3. Geben Sie im Dialogfeld CHECK-Einschränkungen die SQL-Ausdrücke für die CHECK-Einschränkungen ein. Um die Einträge in der Spalte SellEndDate der Tabelle Product auf einen Wert zu beschränken, der entweder größer oder gleich dem Datum in der Spalte SellStartDate oder ein Wert NULL ist, geben Sie z. B. Folgendes ein:

    SellEndDate >= SellStartDate
    

    Wenn die Einträge in der Spalte zip aus fünf Ziffern bestehen sollen, müssen Sie Folgendes eingeben:

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
    

    Hinweis

    Achten Sie darauf, dass nichtnumerische Einschränkungswerte in einfache Anführungszeichen (') eingeschlossen werden müssen.

  4. Wählen Sie OK aus.

  5. In der Kategorie Identität können Sie den Namen der CHECK-Einschränkung ändern und eine Beschreibung (erweiterte Eigenschaft) für die Einschränkung hinzufügen.

  6. In der Tabellen-Designer-Kategorie können Sie festlegen, unter welchen Bedingungen die Einschränkung erzwungen werden soll.

    Aktion Wählen Sie Yes für die folgenden Optionen:
    Einschränkung für Daten überprüfen, die vorhanden waren, bevor Sie die Einschränkung erstellt haben Vorhandene Daten bei Erstellung oder Reaktivierung überprüfen
    Die Einschränkung jedes Mal erzwingen, wenn ein Replikationsvorgang mit dieser Tabelle auftritt Für Replikation erzwingen
    Die Einschränkung jedes Mal erzwingen, wenn eine Zeile in diese Tabelle eingefügt wird oder darin aktualisiert wird Für INSERTs und UPDATEs erzwingen
  7. Wählen Sie Schließen aus.

Verwenden von Transact-SQL

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.

    Erstellen Sie zunächst die Einschränkung.

    ALTER TABLE dbo.DocExc
    ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (
        ColumnD > 10
        AND ColumnD < 50
    );
    GO
    

    Um die Einschränkung zu testen, fügen Sie zuerst Werte hinzu, die die CHECK-Einschränkung bestehen.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
    

    Versuchen Sie als Nächstes, Werte hinzuzufügen, bei denen die CHECK-Einschränkung fehlschlägt.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);