SQL2000表、视图、函数、存储过程关联关系 查找
SQL2000表、视图、函数、存储过程关联关系
表、视图、函数、存储过程是否有无效的链接?
比如:视图VX引用A和B函数,但B函数被删除了。
如何可以知道视图VX有问题呢?(补引用的函数有问题)
[解决办法]
try see
sys.sql_expression_dependencies
sys.sysdepends
[解决办法]
好像没什么办法,我做了一个实验,你可以看看,最后删除一个视图,再次运行时,就会报错:
create view dbo.view_tt
as
select *
from sysobjects
go
create view dbo.view_t1
as
select *
from dbo.view_tt
go
--查询依赖关系
select distinct OBJECT_NAME(id) ,
OBJECT_NAME(depid),
OBJECT_NAME(id) +'依赖'+OBJECT_NAME(depid)
from sysdepends
where id = OBJECT_ID('view_t1')
/*
view_t1view_ttview_t1依赖view_tt
*/
--删除视图
drop view view_tt
--再次查询依赖关系
select distinct OBJECT_NAME(id) ,
OBJECT_NAME(depid),
OBJECT_NAME(id) +'依赖'+OBJECT_NAME(depid)
from sysdepends
where id = OBJECT_ID('view_t1')
/*
*/
--直接报错
select *
from dbo.view_t1
/*
消息 208,级别 16,状态 1,过程 view_t1,第 5 行
对象名 'dbo.view_tt' 无效。
消息 4413,级别 16,状态 1,第 2 行
由于绑定错误,无法使用视图或函数 'dbo.view_t1'。
*/