一个第三方应用程序将数据存储在一个巨大的数据库中(SQL Server 2000/2005)。该数据库有80多个表。当应用程序在数据库中存储新记录时,我如何知道有多少表会受到影响?有可用的东西我可以检索受影响的表列表吗?
答案 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是可行的方式,正如其他人特别提到的一个不受欢迎的第三方数据库。
我还会花一些时间创建图表,以便您可以看到外键关系并了解数据库是如何组合在一起的。我非常了解我的数据库结构,我可以从插入的字段中看出它们影响的表格,我知道我的表格上有什么触发器以及它们的影响。花时间了解您支持的数据库是无可替代的。