我可以访问SQL Server Management Studio中的数据库,我可以看到所有的表。
我们有一个通过电子邮件发送的每日报告-但是我们想知道报告背后的SQL查询是什么,因为我们无法与开发人员取得联系。
因此,我找出了外键以及它们与哪些主键相关。但是到了一半的时候,我遇到了一些列,似乎没有与它们相关联的键。
我没有时间浏览150+表。
我怎么才能找出没有键的值来自哪个表?应该总是有键吗?我是否可以在整个数据库、所有表中搜索该列中的值,以便找到有问题的表--无论它们在哪里?
帮助-这就像是逆向工程,耗时太长……请
发布于 2015-08-25 21:12:15
在Microsoft SQL Server上,可以使用SQL Server事件探查器记录所有数据库查询。如果您知道填充报告的时间,请在该时间运行跟踪,您将能够看到用于该报告的确切SQL语句。
发布于 2015-08-25 21:19:48
如果报告是从存储过程生成的,那么查找该存储过程将为您提供所有这些信息。
这可能会帮助您查找存储过程:
select *
from sysobjects so
inner join syscomments sc on so.id = sc.id
where sc.text like '%columnname%'
and xtype = 'P'
只需在%符号之间插入一些搜索字符串(可能是列输出)。
https://stackoverflow.com/questions/32214091
复制