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

Tracking changes in SQL Server on a BCP Imported Table

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

我在网上看了一些文章,在那里我们可以创建一个日志table和触发器(不知道怎么做)。一个 table 的日志,其中包含像

这样的列
Date | Field | Old Value | New Value.  

首先,如何做到这一点?

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

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

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

使用时间 tables,您可以查询 table 在特定日期时间的状态。在常规使用中,与非时间 table.

没有区别