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]
第一个红色什么意思
第二个红色可以去掉吗

解决方案 »

  1.   

    使用 NOT FOR REPLICATION 来控制约束、标识和触发器使用 NOT FOR REPLICATION 来控制约束、标识和触发器
    在某些情况下,最好将复制拓扑中的用户活动与代理活动区别对待。 例如,如果用户在订阅服务器上插入行且该插入满足表的检查约束,则复制代理在订阅服务器上插入该行时,可能不需要实施相同的约束。 通过 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 中指定:在发布数据库中创建或修改对象。在订阅数据库中创建或修改对象。 通常只是在不使用快照的情况下初始化订阅时,才手动创建对象(而不是由复制创建)。
      

  2.   

    SQL Server 2005 联机丛书  
     
    使用 NOT FOR REPLICATION 来控制约束、标识和触发器  发送反馈 
      请参阅  
     全部折叠全部展开 语言筛选器: 全部语言筛选器: 多语言语言筛选器: Visual Basic语言筛选器: C#语言筛选器: C++语言筛选器: J#语言筛选器: JScript 
    执行复制 > 实现复制的注意事项 > 所有类型复制的注意事项 >  
     Visual Basic(Declaration) 
     C#
     C++
     J#
     JScript在某些情况下,最好将复制拓扑中的用户活动与代理活动区别对待。例如,如果用户在订阅服务器上插入行且该插入满足表的检查约束,则复制代理在订阅服务器上插入该行时,可能不需要实施相同的约束。通过 NOT FOR REPLICATION 选项可以指定在复制代理执行操作时,区别对待下列数据库对象:外键约束在复制代理执行插入、更新或删除操作时,不实施外键约束。
    检查约束在复制代理执行插入、更新或删除操作时,不实施检查约束。
    标识列在复制代理执行插入操作时,标识列的值不递增。
    触发器在复制代理执行插入、更新或删除操作时,不执行触发器。
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/ms190273.aspx
    仔细看完就懂了~
      

  4.   

    NOT FOR REPLICATION    在 CREATE TABLE 语句中,可为 IDENTITY 属性、FOREIGN KEY 约束和 CHECK 约束指定 NOT FOR REPLICATION 子句。如果为 IDENTITY 属性指定了该子句,则复制代理执行插入时,标识列中的值将不会增加。如果为约束指定了此子句,则当复制代理执行插入、更新或删除操作时,将不会强制执行此约束。有关详细信息,请参阅使用 NOT FOR REPLICATION 来控制约束、标识和触发器。PAD_INDEX = { ON | OFF }    如果为 ON,则 FILLFACTOR 指定的可用空间百分比将应用于该索引的中间级别页。如果未指定 OFF 或 FILLFACTOR 值,则考虑到中间级别页的键集,将中间级别页填充到一个近似容量,以留出足够的空间来容纳至少一个索引的最大行。默认值为 OFF。FILLFACTOR =fillfactor    指定一个百分比,指示在索引创建或更改过程中数据库引擎应使每个索引页的叶级别达到的填充程度。fillfactor 必须为介于 1 至 100 之间的整数值。默认值为 0。填充因子值 0 和 100 在所有方面都相同。IGNORE_DUP_KEY = { ON | OFF }    指定当对唯一聚集索引或唯一非聚集索引的多行插入事务中出现重复键值时的错误响应。如果此参数为 ON 并且其中一行违反了唯一索引,则发出警告消息,并且只有违反了 UNIQUE 索引的行失败。如果为 OFF 并且某行违反了唯一索引,则发出错误信息,并回滚整个 INSERT 事务。在处理 UPDATE 语句时,IGNORE_DUP_KEY 不起作用。默认值为 OFF。 STATISTICS_NORECOMPUTE = { ON | OFF }    如果为 ON,则过期的索引统计信息不会自动重新计算。如果为 OFF,则启用自动统计信息更新。默认值为 OFF。ALLOW_ROW_LOCKS = { ON | OFF }    如果为 ON,则访问索引时允许使用行锁。数据库引擎确定何时使用行锁。如果为 OFF,则不使用行锁。默认值为 ON。ALLOW_PAGE_LOCKS = { ON | OFF }    如果为 ON,则访问索引时允许使用页锁。数据库引擎确定何时使用页锁。如果为 OFF,则不使用页锁。默认值为 ON。