在 SQL Server 2017 中,我有一个视图“ParentView”,它被其他视图“ChildView1”、“ChildView2”等引用。这些视图被其他视图“GrandChildView1”、“GrandChildView2”等引用,等等向前。我确保将所有视图设置为具有“WITH SCHEMABINDING”。当我想更改“ParentView”时,我需要删除并创建所有相关视图。当然,这非常有意义,因为我启用了“WITH SCHEMABINDING”,并且我可能会做出可能破坏其中一个依赖视图的更改。然而,通过用户界面做所有这些是乏味的,所以我想知道......
我怎样才能获得一个将视图或任何对象作为输入并根据依赖关系创建删除/创建语句的脚本?
例如:
DROP VIEW [dbo].[GrandChild]
GO
DROP VIEW [dbo].[Child]
GO
ALTER VIEW [dbo].[Parent]
...
GO
CREATE VIEW [dbo].[Child]
...
GO
CREATE VIEW [dbo].[GrandChild]
...
GO
笔记
- 这不必特定于视图。我也有依赖函数和存储过程。
- 我的观点都不是索引视图。