在BCP导入表上跟踪MS SQL Server中的更改

问题描述 投票:0回答:1

我使用BCP上传了一个Excel文件。 (每天截断数据库中的当前表,并从excel文件中截断BCP以重新填充表)。对我而言,重要的是要记录对行所做的所有更改(可以是行的增加或当前行的列中的更改)。想法是保留所有所做更改的日志。

我已经在线阅读了几篇文章,我们可以在其中创建日志表并触发(不知道如何执行此操作)。日志表,其中包含列-日期|领域旧值|新价值。首先,该怎么做?

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

我知道这是一个很大的用例,请您指导。因为我刚接触数据库,但是由于它的强大功能,我真的很高兴学习。

谢谢。

sql-server ssms
1个回答
0
投票

如果您使用的是SQL Server 2016或更高版本,建议您查看临时表。如果您停止截断并使用合并语句,则有一种非常简单的日志记录方式。每当您进行更改时,SQL Server都会写入旧值,并在旧行有效时添加日期时间。

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

© www.soinside.com 2019 - 2024. All rights reserved.