在Microsoft SQL Server 2008 R2中,假设我的数据库具有以下视图:
create view [dbo].[MyView]
(
[MyColumnA]
)
AS
(SELECT MyColumnB FROM MyTable)
现在假设我只知道有一个名为MyView的视图有一个名为MyColumnA的列,但我不知道它映射到MyTable.ColumnB。确定MyView.ColumnA映射到哪个表和列的最简单/最快的方法是什么?有查询可以告诉我这个吗?类似的东西:
SELECT TABLE_NAME, TABLE_COLUMN_NAME
FROM INFORMATION_SCHEMA.VIEW_MAPPINGS
WHERE VIEW_NAME = 'MyView' AND VIEW_COLUMN_NAME = 'MyColumnA'
此查询将返回[MyTable,MyColumnB]。
目前我必须在SSMS对象资源管理器中找到该视图,右键单击它并生成创建脚本,然后搜索视图列的名称。然后我注意它在视图中的顺序位置(比如第4列),并且必须在select语句中找到相应的第4列。 select语句很可能使用表别名,因此我必须查看JOIN语句以根据别名查找表名。
这是非常耗时的,我希望找到一种更快捷的方式,如果不是通过查询,那么可能通过一些比我更快或更容易的其他过程。
答案 0 :(得分:2)
SP_DEPENDS应该可以工作
SP_DEPENDS 'MyView'