0

我正在重构一个遗留系统。它的数据库有大量的表,其中一些没有使用。我需要指定这些表才能知道是否应该删除它们。SQL 中是否有任何方法可以确定特定表是否被任何可编程对象(即存储过程、视图或函数)使用?

4

2 回答 2

0

右键单击表 -> 查看依赖项

于 2012-12-16T06:40:30.373 回答
0

为了指定每个对象的依赖关系,我使用了一个返回对象类型的 select 语句:表、函数、触发器、过程和数据库中的视图。

选择这些对象后,我使用光标来指定对这些对象中的每一个的依赖关系。以下是我使用的代码:

DECLARE c CURSOR READ_ONLY FAST_FORWARD FOR
SELECT    name
FROM      sys.objects
WHERE     (type = 'U') OR (type = 'FN') OR
          (type = 'TR') OR (type = 'P') OR
          (type = 'V')
DECLARE @dbObjectName varchar(500)

OPEN c

FETCH NEXT FROM c INTO @dbObjectName
WHILE (@@FETCH_STATUS = 0)
BEGIN
print @dbObjectName 
EXEC sp_depends @objname = @dbObjectName
    FETCH NEXT FROM c INTO @dbObjectName
END
CLOSE c
DEALLOCATE c
于 2012-12-16T14:29:16.440 回答