Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server-对视图数据的更改跟踪_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server SQL Server-对视图数据的更改跟踪

Sql server SQL Server-对视图数据的更改跟踪,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我想跟踪视图数据的更改。我认为目前的sql server更改跟踪不可能开箱即用。有人想出解决这个问题的办法吗 //编辑 我正在两个数据库之间同步数据。同步主要在视图上工作(一些表也是如此),因此我需要跟踪对视图数据所做的更改(插入/更新/删除)。这项任务并不简单,因为有些视图只是连接,而其他视图则使用PIVOT。管理源代码管理服务器中的更改,并使用加密生成视图,这样人们就不会在服务器上弄乱这些更改。您可以跟踪更改。这些似乎适用于SQLServer2005及更高版本 一个好处是对于那些不打算使用源

我想跟踪视图数据的更改。我认为目前的sql server更改跟踪不可能开箱即用。有人想出解决这个问题的办法吗

//编辑
我正在两个数据库之间同步数据。同步主要在视图上工作(一些表也是如此),因此我需要跟踪对视图数据所做的更改(插入/更新/删除)。这项任务并不简单,因为有些视图只是连接,而其他视图则使用PIVOT。

管理源代码管理服务器中的更改,并使用加密生成视图,这样人们就不会在服务器上弄乱这些更改。

您可以跟踪更改。这些似乎适用于SQLServer2005及更高版本

一个好处是对于那些不打算使用源代码管理的用户(这种情况经常发生)。如果使用GUI视图创建并且不想导出到实际文本,则可能会出现问题

这将记录以前的版本(数据库中已经有当前版本),而无需任何用户参与

这将使你从瓶颈中解脱出来,批准或应用每一项更改


我没有阅读足够的内容,看它是否能捕获提交更改的用户。

否。不,您不能。我希望您可以。

这不是视图来源的变化,而是数据的变化。SQLServer2008为表提供了内置的更改跟踪功能,但在视图中没有类似的功能。可更新视图?你到底为什么要这些?(如果你真的需要它们是可更新的,那么你就只能执行触发器了)。更新是在基础表上进行的,而不是在视图本身上,但我正在将数据同步到另一个数据库,因此如果我可以只获取有关视图而不是基础表上更改的内容的信息,那就太好了。例如,在一个视图中,我使用的是PIVOT,因此它并不简单。在平台中提供您想要的功能时,不可能不破坏性能。SQL Server使用快照存储有关更改的信息,因此使用快照计算差异对服务器来说是一次性的,只有在有人需要这些信息时。对不起,你误解了这个想法。下面的评论中有更多关于它的信息,但我现在也更新了我的帖子。虽然我没有回答这个问题。鉴于全文索引似乎使用更改跟踪,并且只要是索引视图,就允许对视图进行索引,这似乎应该是可能的。索引视图是一件棘手的事情。Pivot-无法索引,left join-无法索引。如果要为视图编制索引,有许多功能无法使用。看看这里:@kubal5003,你找到解决办法了吗?我也有同样的问题。对不起,这是很久以前的事了。我甚至都不记得这个问题了。说真的-回答8年前的问题有什么价值?@kubal5003为那些8年后仍在寻找最佳答案的人改进知识库。