Deaktivieren von CHECK-Einschränkungen mit den Anweisungen INSERT und UPDATE

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Sie können mit SQL Server Management Studio oder Transact-SQL eine CHECK-Einschränkung für INSERT- und UPDATE-Transaktionen in SQL Server deaktivieren. Sobald die CHECK-Einschränkungen deaktiviert worden sind, wird die Spalte bei Einfügungen oder Aktualisierungen nicht mehr bezüglich der Einschränkungsbedingungen überprüft. Verwenden Sie diese Option, wenn Sie wissen, dass neue Daten gegen die vorhandene Einschränkung verstoßen, oder wenn die Einschränkung nur für die bereits in der Datenbank vorhandenen Daten gilt.

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

Hinweis

CHECK-Einschränkungen werden mit einer ALTER TABLE-Anweisung aktiviert und deaktiviert, die immer eine Schemaänderungssperre (Sch-M) erfordert. Sch-M-Sperren verhindern den gleichzeitigen Zugriff auf die Tabelle. Weitere Informationen finden Sie unter Sperren und ALTER TABLE.

Berechtigungen

Erfordert die ALTER-Berechtigung für die Tabelle.

Verwendung von SQL Server Management Studio

So deaktivieren Sie eine CHECK-Einschränkung für INSERT- und UPDATE-Anweisungen

  1. Erweitern Sie im Objekt-Explorerdie Tabelle mit der Einschränkung, und erweitern Sie dann den Ordner Einschränkungen .

  2. Klicken Sie mit der rechten Maustaste auf die Einschränkung, und wählen Sie anschließend Ändernaus.

  3. Klicken Sie im Raster unter dem Tabellen-Designerauf Für INSERTs und UPDATEs erzwingen , und wählen Sie im Dropdownmenü Nein aus.

  4. Klicken Sie auf Schließen.

Verwenden von Transact-SQL

So deaktivieren Sie eine CHECK-Einschränkung für INSERT- und UPDATE-Anweisungen

  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 die folgenden Beispiele, fügen Sie sie in das Abfragefenster ein, und klicken Sie auf Ausführen.

    USE AdventureWorks2022;  
    GO  
    ALTER TABLE Purchasing.PurchaseOrderHeader  
    NOCHECK CONSTRAINT CK_PurchaseOrderHeader_Freight;   
    GO