Как Вы находите все зависимости таблицы базы данных?

В MS SQL 2005 действительно ли возможно узнать, какие таблицы/столбцы используются или в качестве ключей в другой таблице, или в качестве части хранимой процедуры?

Причина, я пытаюсь вымыться, некоторые старые сохранили procs и таблицы, некоторые из которых могут быть удалены, некоторым из которых можно было сократить столбцы. Но очевидно я не хочу удалять материал, который используется.

1
задан Carlos 17 May 2010 в 12:29
поделиться

1 ответ

DECLARE @BaseObject varchar(100)
SET @BaseObject = 'AddEntry'

SET NOCOUNT ON

DECLARE @Objects TABLE (
    id int
)

INSERT @Objects (id)
SELECT id FROM sysobjects
WHERE name like @BaseObject

WHILE (@@ROWCOUNT > 0)
BEGIN
    INSERT @Objects (id)
    SELECT d.depid
    FROM sysdepends d
    WHERE d.id IN (SELECT id FROM @Objects)
    AND d.depid NOT IN (SELECT id FROM @Objects)
END

SET NOCOUNT OFF

SELECT convert(varchar(100),
        '[' + oo.name + '].[' + o.name + ']') AS '--Object--'
FROM sysobjects o 
INNER JOIN sysusers oo ON o.uid = oo.uid
WHERE o.id IN (SELECT id FROM @Objects)
ORDER BY oo.name, o.name
1
ответ дан 3 September 2019 в 00:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: