替代删除触发器以跟踪已删除的记录

.net provisioning sqlbulkcopy sql-server tsql

我有一项任务是创建一个大型数据复制服务来配置我们的数据仓库。源数据库驻留在其他服务器上。

到目前为止,我已经能够使用SqlBulkCopy类和TSql Excepts语句的结合将Update和Insert项实现到仓库中。

我现在的问题是处理记录删除。我唯一可以想到的处理删除的方法是在表上创建一个自定义触发器,将已删除的记录插入到我的服务可以读取的临时表中,然后从仓库中删除。

我知道有很多数据复制工具,但公司需要定制的内部服务。

请注意 ,将要配置的一些表格超过1亿条记录。

有什么建议么?

一般承认的答案

我不认为删除触发器会那么糟糕。 1亿条记录绝对是一个很好的组块,但是你在服务器上运行触发器,SQL可以优化执行路径。

如果您在客户端执行其他操作,则会产生从服务器获取记录然后向仓库发出删除命令的开销。

什么是一个困扰你的触发器?


热门答案

SQL Server具有内置的更改跟踪功能(至少在2008 R2中,我不确定何时引入了此功能)。在这里阅读更多内容: http//msdn.microsoft.com/en-us/library/cc280462.aspx




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因