レガシーシステムのリファクタリングに取り組んでいます。そのデータベースには膨大な数のテーブルがあり、そのうちのいくつかは使用されていません。それらを削除する必要があるかどうかを知るために、それらのテーブルを指定する必要があります。特定のテーブルがプログラム可能なオブジェクト (つまり、ストアド プロシージャ、ビュー、または関数) によって使用されているかどうかを判断する SQL の方法はありますか?
2 に答える
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 に答える
0
テーブルを右クリック -> 依存関係を表示
于 2012-12-16T06:40:30.373 に答える