停用複寫的檢查條件約束

適用於:SQL Server 2016 (13.x) 及更新版本 Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

您可以使用 SQL Server Management Studio 或 Transact-SQL 來停用 SQL Server 中的檢查限制式。 您也可以明確停用複製的檢查條件約束,當您從舊版 SQL Server 發行資料時,這會相當實用。

注意

如果使用複寫發行資料表,則會自動停用複製代理程式所執行作業的檢查條件約束。 當複寫代理程式在訂閱者端執行插入、更新或刪除時,不會檢查條件約束;如果使用者執行插入、更新或刪除,則會檢查條件約束。 停用複製代理程式的條件約束,是因為原本插入、更新或刪除資料時,就已在發行者端檢查過條件約束。 如需詳細資訊,請參閱 指定結構描述選項

開始之前

安全性

權限

需要資料表的 ALTER 權限。

使用 SQL Server Management Studio

若要停用複製的檢查條件約束

  1. [物件總管]中,展開包含您要修改之檢查條件約束的資料表,然後展開 [條件約束] 資料夾。

  2. 以滑鼠右鍵按一下您要修改的檢查條件約束,然後按一下 [修改]

  3. [檢查條件約束] 對話方塊中的 [資料表設計工具]底下,針對 [強制複寫] 選取 [否]值。

  4. 按一下 [關閉] 。

使用 TRANSACT-SQL

若要停用複製的檢查條件約束

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會建立包含 IDENTITY 資料行及 CHECK 條件約束的資料表。 接著範例會卸除條件約束再重新建立,並指定 NOT FOR REPLICATION 子句。

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE dbo.doc_exd (column_a int IDENTITY (1,1)   
    CONSTRAINT exd_check CHECK (column_a > 1))   
    
    ALTER TABLE dbo.doc_exd   
    DROP CONSTRAINT exd_check;   
    GO  
    ALTER TABLE dbo.doc_exd    
    ADD CONSTRAINT exd_check CHECK NOT FOR REPLICATION (column_a > 1);  
    

如需詳細資訊,請參閱 ALTER TABLE (Transact-SQL)

另請參閱

指定結構描述選項