我可以访问SQL Server Management Studio中的数据库,我可以看到所有表格。
我们通过电子邮件发送了每日报告 - 但是我们想知道报告背后的SQL查询是什么,因为我们无法抓住开发人员。
因此,我发现了外键以及它们与哪些主键相关..但在我看到列的一半时,似乎并没有与它们相关的键。
我没有时间浏览150多张桌子。
如果没有密钥,我怎样才能找出值来自哪个表?如果总是有密钥的话?我可以在整个数据库中搜索该列中所有值的表,以便找到有问题的表 - 无论它们在哪里?
帮助 - 它就像逆向工程并且耗时太长......请
答案 0 :(得分:3)
在Microsoft SQL Server上,您可以使用SQL Server Profiler记录所有数据库查询。如果您知道当天填充报告的时间,那么在那时运行跟踪,您将能够看到用于它的确切SQL语句。
答案 1 :(得分:0)
如果报告是从存储过程生成的,那么查找存储过程将为您提供所有这些信息。
这可能有助于您找到存储过程:
select *
from sysobjects so
inner join syscomments sc on so.id = sc.id
where sc.text like '%columnname%'
and xtype = 'P'
只需在%符号之间添加一些搜索字符串(可能是列输出)。