对复制禁用 CHECK 约束
您可以使用 SQL Server Management Studio 或 Transact-SQL 禁用 SQL Server 2012 中的 CHECK 约束。 也可以对复制显式禁用检查约束,这在从早期版本的 SQL Server 中发布数据时会非常有用。
注意 |
---|
如果表是使用复制发布的,则对于复制代理执行的操作将自动禁用检查约束。 当复制代理在订阅服务器上执行插入、更新或删除操作时,将不检查约束;如果用户执行插入、更新或删除操作,则检查约束。 由于最初插入、更新或删除数据时已经在发布服务器上检查过约束,所以对于复制代理将禁用该约束。 有关详细信息,请参阅指定架构选项。 |
本主题内容
开始之前:
安全性
若要对复制禁用 CHECK 约束,请使用:
SQL Server Management Studio
Transact-SQL
开始之前
安全性
权限
需要对表的 ALTER 权限。
[Top]
使用 SQL Server Management Studio
对复制禁用 CHECK 约束
在**“对象资源管理器”中,展开具有要修改的 CHECK 约束的表,再展开“约束”**文件夹。
右键单击要修改的 CHECK 约束,然后单击**“修改”**。
在**“CHECK 约束”对话框中的“表设计器”,对“强制用于复制”选择“否”**值。
单击**“关闭”**。
[Top]
使用 Transact-SQL
对复制禁用 CHECK 约束
在**“对象资源管理器”**中,连接到数据库引擎实例。
在标准菜单栏上,单击**“新建查询”**。
将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。 第一个示例创建包含一个 IDENTITY 列的表和表中的一个 CHECK 约束。 然后,该示例删除该约束,并通过指定 NOT FOR REPLICATION 子句重新创建约束。
USE AdventureWorks2012; 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)。
[Top]