我需要你的帮助。
例如,我有一个SQL Server视图MyView
。
Adb.vs.MyView
列:
ID
Name
Address
Email
Phone
观点背后的逻辑是
SELECT
Ac.AccountID AS ID,
Ac.AccountName AS Name,
Ad.Main_Adress AS Address,
Em.Main_Email AS Email,
Concat(Ph.Phone_Area_Code,Ph.Mobile_Phone_Number) AS Phone
FROM
Bdb.dbo.Account AS Ac
INNER JOIN
Cdb.dbo.Address AS Ad ON Ac.AccountID = Ad.AccountID
INNER JOIN
Cdb.dbo.Emails AS Em ON Ac.AccountID = Em.AccountID
INNER JOIN
Cdb.dbo.PhoneBook AS Ph ON Ac.AccountID = Ph.AccountID
注意:
所有这些表之间没有构建KEY关系。
我的目标是对此视图进行反向工程以获得下一种结果:
请建议使用任何类型的工具/工具或脚本来执行此操作。
此外,如果有人知道类似的解决方案,但Rev.En.用于将数据填充到表中的存储过程我将非常感激
BEC。我将需要在不久的将来扭转大量的此类观点和存储过程。
提前感谢您的任何支持!
答案 0 :(得分:2)
查看系统视图。您想要的大部分内容可能在INFORMATION_SCHEMA.VIEW_COLUMN_USAGE中提供。例如:
USE Adb
GO
Select * from INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
where VIEW_NAME='MyView'
GO
答案 1 :(得分:1)
视图只是SQL Server脚本,SQL Server作为子选择添加到您的查询中。因此,使用的字段实际上并未以与表定义相同的方式保存在SQL Server中。最好的办法是使用SQL Server Management Studio编写所有视图的脚本,然后将文件插入General SQL Parser等工具中,该工具可以输出该脚本中使用的列和表。
这并不完美,但应该让你在实现目标的过程中走得更远。您可以免费试用here.