我正在努力重构遗留系统。它的数据库有大量的表,其中一些表没有使用。我需要指定这些表,以便知道它们是否应该被删除。 在SQL中是否有任何方法可以确定任何可编程对象(即存储过程,视图或函数)是否使用了特定的表?
答案 0 :(得分:0)
右键单击表格 - >查看依赖关系
答案 1 :(得分: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