肯定是指有数据插入的情况下。 但目前发现同步过来的数据,没有触发inserted触发器。
追答如果有insert触发器定义,只要有数据新增,是会触发的。
你检查下:
1、n表的insert触发器定义正确否?
2、n表的数据同步是否是新增而非更新?
3、检查下,是否禁用了触发器?
4、触发器的处理逻辑是否正确?
我不清楚你怎么判断未触发的,如果只是看数据是否变化,是不对的。是否触发,首先的,是不要看数据是否变化来判断:先用简单语句测试。比如建个新表,清空,有触发就在这个表里新增一行测试记录。确认触发前,先不要在触发器里用inserted处理,也不要加条件判断。
是有触发,但提示错。
n表触发器是将数据同时插入第3个表CardData,这个表有自增长ID列。提示“当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 'CardData' 中的标识列指定显式值。”
如何才能避免这种错误情况发生?
有自增长字段的话,要insert,必须把IDENTITY_INSERT 设置为on再执行insert,大致如下:
SET IDENTITY_INSERT CardData ON
insert CardData (字段1,字段2,字段3……) values (值1,值2,值3……)
SET IDENTITY_INSERT CardData OFF