插入记录后如何计算出数据库中有多少表受影响?

时间:2010-01-26 16:58:09

标签: sql sql-server sql-server-2005 tsql

一个第三方应用程序将数据存储在一个巨大的数据库中(SQL Server 2000/2005)。该数据库有80多个表。当应用程序在数据库中存储新记录时,我如何知道有多少表会受到影响?有可用的东西我可以检索受影响的表列表吗?

5 个答案:

答案 0 :(得分:3)

您可以通过在数据库上的SQL Profiler中运行跟踪来判断 - SQL:StmtCompleted事件可能是要监视的事件 - 即,如果应用程序对多个表执行了一系列插入,你应该在Profiler中看到它们。

答案 1 :(得分:2)

您可以使用SQL事件探查器来跟踪SQL查询。因此,您将看到应用程序中单击一次按钮导致的一系列调用。

此外,还可以使用元数据或SQL工具来获取触发器列表,这些触发器可以在简单的插入上执行大量操作。

答案 2 :(得分:1)

如果您有用于存储新记录的SQL脚本(通常,它应该是insert语句,或其他DML语句,如update,merge等)。然后,您可以通过解析这些SQL脚本来了解有多少表受到影响。

以此SQL为例:

Insert into emp(fname, lname)
Values('john', 'reyes')

你可以得到这样的结果:

sstinsert
 emp(tetInsert)

Tables:
emp

Fields:
emp.fname
emp.lname

答案 3 :(得分:0)

您可以在更新时触发的表上添加触发器 - 您可以使用此更新日志表来报告正在更新的内容。

在此处查看更多内容:http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/

答案 4 :(得分:0)

Profiler是可行的方式,正如其他人特别提到的一个不受欢迎的第三方数据库。

我还会花一些时间创建图表,以便您可以看到外键关系并了解数据库是如何组合在一起的。我非常了解我的数据库结构,我可以从插入的字段中看出它们影响的表格,我知道我的表格上有什么触发器以及它们的影响。花时间了解您支持的数据库是无可替代的。