撇开从 SQL 服务器获取“表差异”的可能更好的 方法UpdTime
不谈 - 假设我有一个带有type 列的表,它在每次插入和更新时都datetime
使用它进行设置和更新,如下所示:getdate()
UPDATE mytable SET Updtime=getdate(), ... WHERE ...
INSERT INTO mytable VALUES (getdate(),...)
经过初步
SELECT getdate() AS Now, ... FROM mytable WITH(readcommitted,rowlock)
我曾经读取所有行并将值存储Now
在一个变量lastNow
中,然后我继续定期做
SELECT getdate() AS Now, ... FROM mytable WITH(readcommitted,rowlock) WHERE UpdTime >= lastNow;
调用,总是将新的存储Now
到我的lastNow
变量中。
我可以确保永远不会错过任何更改(显然 DELETE 除外)吗?还是这取决于某些设置?
顺便说一句,看到两次更改不会打扰我,只会错过更改。
编辑我刚刚添加WITH(readcommitted,rowlock)
到上面的SELECT
语句中,因为这就是我想要添加“差异”功能的旧语句的样子。