CREATE TABLE [dbo].[cnsSurveyResponseDetail](
[SurveyResponseDetailID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,CONSTRAINT [PK_cnsSurveyResponseDetail] PRIMARY KEY CLUSTERED
(
[SurveyResponseDetailID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY]
) ON [PRIMARY]第一个红色什么意思
第二个红色可以去掉吗
[SurveyResponseDetailID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,CONSTRAINT [PK_cnsSurveyResponseDetail] PRIMARY KEY CLUSTERED
(
[SurveyResponseDetailID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY]
) ON [PRIMARY]第一个红色什么意思
第二个红色可以去掉吗
在某些情况下,最好将复制拓扑中的用户活动与代理活动区别对待。 例如,如果用户在订阅服务器上插入行且该插入满足表的检查约束,则复制代理在订阅服务器上插入该行时,可能不需要实施相同的约束。 通过 NOT FOR REPLICATION 选项可以指定在复制代理执行操作时,区别对待下列数据库对象:外键约束
在复制代理执行插入、更新或删除操作时,不实施外键约束。检查约束
在复制代理执行插入、更新或删除操作时,不实施检查约束。标识列
在复制代理执行插入操作时,标识列的值不递增。触发器
在复制代理执行插入、更新或删除操作时,不执行触发器。在发布表时,架构选项用于控制在订阅数据库中创建对象的方式。 默认架构选项因发布而异。 当将这些选项设置为在订阅数据库中创建外键约束和检查约束时,将设置 NOT FOR REPLICATION 选项。复制支持可更新订阅的合并发布和事务发布中的标识列时,也设置 NOT FOR REPLICATION 选项。 有关复制标识列的详细信息,请参阅复制标识列。 大多数情况下,默认设置都适用,但如果应用程序需要不同的行为,可以更改这些默认设置。 考虑的主要方面是触发器。 例如,如果定义一个插入触发器时设置了 NOT FOR REPLICATION 选项,则所有用户的插入操作都会触发该触发器,但复制代理的插入操作不会触发该触发器。 例如有一个将数据插入到跟踪表中的触发器: 当用户初始插入行时,将触发该触发器并在跟踪表中写入行,但在将数据复制到订阅服务器时,不应触发该触发器,因为这会导致在跟踪表中插入不必要的行。指定 NOT FOR REPLICATION 选项 可以通过下列方式指定 NOT FOR REPLICATION 选项:使用复制架构选项。 有关详细信息,请参阅如何指定架构选项 (SQL Server Management Studio) 和如何指定架构选项(复制 Transact-SQL 编程)。在下列情况下,直接在 Transact-SQL 语法或在 Microsoft SQL Server Management Studio 中指定:在发布数据库中创建或修改对象。在订阅数据库中创建或修改对象。 通常只是在不使用快照的情况下初始化订阅时,才手动创建对象(而不是由复制创建)。
使用 NOT FOR REPLICATION 来控制约束、标识和触发器 发送反馈
请参阅
全部折叠全部展开 语言筛选器: 全部语言筛选器: 多语言语言筛选器: Visual Basic语言筛选器: C#语言筛选器: C++语言筛选器: J#语言筛选器: JScript
执行复制 > 实现复制的注意事项 > 所有类型复制的注意事项 >
Visual Basic(Declaration)
C#
C++
J#
JScript在某些情况下,最好将复制拓扑中的用户活动与代理活动区别对待。例如,如果用户在订阅服务器上插入行且该插入满足表的检查约束,则复制代理在订阅服务器上插入该行时,可能不需要实施相同的约束。通过 NOT FOR REPLICATION 选项可以指定在复制代理执行操作时,区别对待下列数据库对象:外键约束在复制代理执行插入、更新或删除操作时,不实施外键约束。
检查约束在复制代理执行插入、更新或删除操作时,不实施检查约束。
标识列在复制代理执行插入操作时,标识列的值不递增。
触发器在复制代理执行插入、更新或删除操作时,不执行触发器。
仔细看完就懂了~