繁体   English   中英

在 BCP 导入表上跟踪 SQL 服务器中的更改

[英]Tracking changes in SQL Server on a BCP Imported Table

我使用 BCP 上传了 Excel 文件。 (每天从 excel 文件中截断 DB 中的当前表并 BCP 以重新填充表)。 记录对行所做的所有更改(可能是行添加或当前行列中的更改)对我来说很重要。 这个想法是记录所有所做的更改。

我在网上看了几篇文章,我们可以在其中创建一个日志表和触发器(不知道怎么做)。 具有如下列的日志表

Date | Field | Old Value | New Value.  

首先,如何做到这一点?

其次,什么是不记录表截断而只记录实际更改的更聪明的方法。 我正在考虑创建一个临时表 (tbl_Excefile_Temp),我将在其中导入文件,然后从 tbl_Excefile_Temp 更新当前表 (tbl_Excefile) 这样,在当前表中所做的所有更改都将自动记录在日志表中。

我知道这是一个很大的用例,请您指导。

如果您使用的是 SQL 服务器 2016 或更高版本,我建议您查看临时表。 如果您停止截断并使用合并语句,您就有一种非常简单的方法来保存日志。 每当您进行更改 SQL 服务器将写入旧值并添加旧行有效时的日期时间。

使用时态表,您可以在特定日期时间查询您的表。 在常规使用中,与非临时表没有区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM