SQL Server:找出报告背后的表格,每日电子邮件? (我有数据库)?

时间:2015-08-25 21:06:49

标签: sql-server tsql

我可以访问SQL Server Management Studio中的数据库,我可以看到所有表格。

我们通过电子邮件发送了每日报告 - 但是我们想知道报告背后的SQL查询是什么,因为我们无法抓住开发人员。

因此,我发现了外键以及它们与哪些主键相关..但在我看到列的一半时,似乎并没有与它们相关的键。

我没有时间浏览150多张桌子。

如果没有密钥,我怎样才能找出值来自哪个表?如果总是有密钥的话?我可以在整个数据库中搜索该列中所有值的表,以便找到有问题的表 - 无论它们在哪里?

帮助 - 它就像逆向工程并且耗时太长......请

2 个答案:

答案 0 :(得分:3)

在Microsoft SQL Server上,您可以使用SQL Server Profiler记录所有数据库查询。如果您知道当天填充报告的时间,那么在那时运行跟踪,您将能够看到用于它的确切SQL语句。

请参阅https://youtu.be/IaxG6jbNuj8

答案 1 :(得分:0)

如果报告是从存储过程生成的,那么查找存储过程将为您提供所有这些信息。

这可能有助于您找到存储过程:

select * 
from sysobjects so
inner join  syscomments sc on so.id = sc.id
where sc.text like '%columnname%'
and xtype = 'P'

只需在%符号之间添加一些搜索字符串(可能是列输出)。