查找使用哪个视图(如果有)(使用依赖项?)

时间:2010-11-22 11:32:30

标签: sql sql-server sql-server-2005

我遇到this article详细说明了依赖关系是如何工作的,我想知道是否可以使用它们来查看哪个视图(如果有的话)包含在其中。

我遇到了诸如this one之类的主题,它们展示了如何查找视图中使用的实体,但我希望能够进一步向下钻取,而不是找出一个字段是否已链接任何意见? (使用Sql server 2005)

谢谢!

3 个答案:

答案 0 :(得分:3)

对于你的问题

  

...找出一个字段是否链接到任何视图?

可以在数据库中使用系统视图VIEW_COLUMN_USAGE。我创建了这个视图

USE [ScratchPad]
GO
CREATE VIEW [dbo].[View_1]
AS
SELECT     second
FROM         dbo.deleteme
GO

使用以下查询:

SELECT TOP 1000 [VIEW_CATALOG]
      ,[VIEW_SCHEMA]
      ,[VIEW_NAME]
      ,[TABLE_CATALOG]
      ,[TABLE_SCHEMA]
      ,[TABLE_NAME]
      ,[COLUMN_NAME]
  FROM [ScratchPad].[INFORMATION_SCHEMA].[VIEW_COLUMN_USAGE]

我收到了这个包含列名和表名

的结果
## VIEW_CATALOG VIEW_SCHEMA VIEW_NAME   TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME  COLUMN_NAME
ScratchPad       dbo                      View_1     ScratchPad dbo          deleteme   second

在查询中添加WHERE子句,您应该得到答案。

如果您希望查看约束,请使用视图“[INFORMATION_SCHEMA]。[CONSTRAINT_COLUMN_USAGE]”

我的系统是MSSS 2K8,您的2K5系统应具有相同的系统视图

答案 1 :(得分:1)

Red Gate Software的SQL Prompt 5具有列依赖关系功能,在这种情况下可能很有用。将鼠标悬停在脚本中的列名称上,然后弹出一个窗口,其中包含使用该列的对象列表,包括视图。

您可以免费下载14天试用版,以查看此功能是否适合您。

保罗史蒂芬森 SQL提示项目经理
红门软件

答案 2 :(得分:0)

看看这个(免费)工具: http://www.atlantis-interactive.co.uk/products/schemasurf/default.aspx

(引用):

  

Atlantis Schema Surf是我们的SQL   依赖&实体实体ER图   工具 - 它是一个免费的动画图形   工具,让您轻松   可视化之间的依赖关系   SQL Server数据库中的对象   在实时实体ER图中。

很棒的工具。