有没有办法找出索引视图中哪些记录已更改?

Is there a way to find out which records have changed in an indexed view?

我有一个 table (invoice details),它有两列(productidquantity)。我在此 table 上创建了一个索引视图,以便了解产品的余额。

当用户在一台计算机上输入发票时,我想在另一台计算机上刷新产品余额,因此我需要知道索引视图中的哪些行被更改了。

没有办法。您(定期)拉取并更新。我见过的任何需要分发数据更新的应用程序都不是通过从 SQL 服务器更新来实现的,而是通过在应用程序服务器(主要是股票交易应用程序)实现的自己的数据源上发送更新来实现的。

SQL 服务器没有这方面的功能,我见过的几乎所有数据库访问层也没有。您定期(每 X 秒)或在用户按下更新按钮时取消并更新客户端表示。

事务复制允许您复制 Indexed Views as Tables。这将跟踪对索引视图的更改并将它们应用于订阅者,订阅者在订阅者数据库中拥有索引视图数据的副本作为 table。