Способом розпочати це було б наступне:
DECLARE @TableName VARCHAR(50)
DECLARE @ObjectID INT
SET @TableName = '' -- the name of the objects you want to investigate
SELECT @ObjectID = [id] FROM sysobjects WHERE name=@TableName
SELECT * FROM sysobjects WHERE name=@TableName
UNION
SELECT * FROM sysobjects WHERE id in (SELECT id FROM sysdepends WHERE depid= @ObjectID)
У SysDepends «стіл» покаже вам , які об'єкти залежать від іншого. Він є ієрархічним, тому вам, можливо, доведеться рекурсивно пробігати через SysDepends, поки ви не почнете отримувати нулі. Іноді систематизація неповна, ось стаття з деякими іншими пропозиціями .
SysObjects «стіл» розповість вам деякі речі про об'єкти в базі даних. Стовпці типу (також xtype) повідомляють про те, що таке елемент: таблиця, визначена користувачем, збережена програма, тригер і т.д.
Тоді ви захочете sp_helptext виплюнути текст збереженої процедури. Це не відтворить текст зашифрованої збереженої процедури.
Будь-яке повне і повне рішення передбачає щось програмування, особливо коли задіяні зашифровані збережені процедури та тригери. Один зразок статті про програмне визначення елементів у БД. Тип даних, необхідний для розшифрування збережених програм SQL Server 2000, з'явився в SQL Server 2005, тому ви не можете використовувати SQL в SQL Server 2000 для розшифрування власних зашифрованих збережених програм (але ви можете їх розшифрувати в SQL в SQL Server 2005), і це буде не дивуйте мене, якщо те саме стосувалося переходу 2005 до 2008 року. Я втратив інтерес до розшифровки збережених процедур кілька років тому.