我创建了一个测试表。
create table test (Id int not null, ......)
ON [PRIMARY] WITH (DATA_COMPRESSION = PAGE)
GO
ALTER TABLE test ADD PRIMARY KEY CLUSTERED (Id)
WITH (DATA_COMPRESSION = PAGE) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ix_timestamp] ON test ([timestamp])
WITH (DATA_COMPRESSION = PAGE) ON [PRIMARY]
GO
ALTER TABLE test ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)
更新:该表有一个触发器,用于编写另一个表中所有更改的PK
我在表格中插入了一些值。然后使用update test set ... where Id = 1
更新了一行。
但是,以下查询返回sys_change_operation的所有“I”?什么可能导致问题? (顺便说一下,我试图启用CDC,但它没有捕获任何东西。)
select distinct commit_time,sys_change_operation, count(*)
-- select *
from
changetable(changes dbo.test, 0) c
join sys.dm_tran_commit_table tc on c.sys_change_version = tc.commit_ts
group by commit_time, sys_change_operation
结果:
commit_time sys_change_operation Count ----------------------- -------------------- ----------- 2014-05-29 22:39:22.397 I 5944 2014-05-29 22:47:41.220 I 1 (The last row should be "U")