我需要在同一个表上有两个SQL依赖项,因为不同的原因我必须监视它们。
所以我写了以下两个查询 -
**SELECT [ID], [COLUMN1] FROM DBO.TABLENAME WHERE SOMECOLUMN = VAL1 ORDER BY ID**
**SELECT [ID], [COLUMN2] FROM DBO.TABLENAME WHERE SOMECOLUMN = VAL1 ORDER BY ID**
之前我们只使用了第一个查询,后来又添加了第二个查询。 它们都用于创建两个独立的依赖项。
但我观察的是,当我更新COLUMN2时,我希望只有在第二个查询中注册的回调才会被触发。
,而是BOTH回调(使用第一个查询和第二个查询注册的回调)有人能帮助我吗?
提前致谢。
答案 0 :(得分:1)
投影列与更新列之间的区别长期以来一直是查询通知的问题。不幸的是事情就是这样,所以你会得到误报(当没有任何改变时通知)。见Understanding When Query Notifications Occur:
请注意,SQL Server可能会生成查询通知,以响应不更改数据的事件,或响应不会实际影响查询结果的更改。例如,当UPDATE语句更改查询返回的行之一时,即使对行的更新未更改查询结果中的列,也可能会触发通知。