2013-11-25 41 views
0

我被问及如何对视图进行反向工程,以便确定在sql查询中使用哪些列和表来生成视图。所以说视图1是从以下10个表格和43列构建的。这甚至可能在SQL Server 2005中?逆向工程a视图

回答

4

使用sp_helptext

exec sp_helptext 'your_view' 

编辑

你要的是找出哪些依赖你的看法了。你可以使用sp_depends来做到这一点,但它只会让你获得表依赖关系而不是列。

exec sp_depends 'your_view' 

为了找出你可能要编写某种SQL解析器来提取您恢复与sp_helptext的创建视图语句中使用的列的列。

你可以尝试使用ReGex来提取你想要的信息,或者如果你想要一个更大的发烧友枪,你可以试试Irony它有一个内置的Sql Lexic。

+2

是的,请参阅说明书中的“视图”? – tucaz

+0

是pff :)错过了,对不起,我习惯于将它用于存储过程:] – nrathaus

+0

感谢您的回复。我意识到这一点。但我正在寻找一些sql去除创建视图语句中的表和列。这些视图具有数千行代码和CTE。 –

1

是的,在SSMS中选择您的database - >views - >右键单击 - >script as CREATE

如果您想解码另一个数据库上的视图,则无法访问(例如接口) - 这是不可能的。

+0

感谢您的回复。我意识到这一点。但我正在寻找一些sql去除创建视图语句中的表和列。这些视图具有数千行代码和CTE。 –