我如何找到填充表格的内容?

时间:2015-07-29 17:32:18

标签: sql-server sql-server-2008 ssis

我经常遇到这个问题。我在数据仓库工作,我无法找到填充表格的内容。通常,表每天从仓库中的其他表或Oracle数据库填充。我已经尝试了以下查询,可以确认更新,但我看不出是在做什么。我搜索了具有相似名称和SQL作业的已知SSIS包和存储过程,但我找不到任何内容。

select object_name(object_id) as DatabaseName, last_user_update, *
from sys.dm_db_index_usage_stats
where database_id = DB_ID('Warehouse')
and object_id=object_id('PAYMENTS_DAILY')

我只有最基本的SQL Server工具,所以没有花哨的搜索工具:(

2 个答案:

答案 0 :(得分:2)

在将数据插入数据之后,没有办法告诉数据来自何处而没有某种记录。

SSIS具有日志记录,您可以在表上使用触发器,更改数据捕获,审计列等等。有很多方法可以做到这一点。

答案 1 :(得分:0)

通常,如果您知道添加行的时间,那么可以帮助您确定添加行的过程。将新的“InsertedDatetime”列添加到仓库表中,并为其指定默认值getdate()。如果您知道行始终在上午11:15进入,则可以使用它来缩小搜索范围。

这可能是足够的信息,但如果这不能帮助您跟踪该过程,那么您可以添加包含从源IP地址到调用对象名称的所有内容的其他列。

作为最后的手段,您可以重命名您的表并创建一个名为相同的视图,然后在其上使用“替换为插入”触发器,它只保持打开连接,以便您可以检查当前正在执行的进程以确定它的来源从。

我打赌你可以从单独的时间中解决它。