Ein Weg, um damit zu beginnen, wäre der folgende:
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)
Die SysDepends "Tabelle" zeigt Ihnen, welche Objekte von anderen abhängig sind. Es ist hierarchisch, daher müssen Sie SysDepends möglicherweise rekursiv durchlaufen, bis Sie Nullen erhalten. Manchmal ist sysdepends unvollständig, hier ist ein Artikel mit einigen anderen Vorschlägen .
In der "Tabelle" von SysObjects erfahren Sie etwas über die Objekte in der Datenbank. In den Spalten type (auch xtype) wird angegeben, um welches Element es sich handelt: benutzerdefinierte Tabelle, gespeicherter Prozess, Trigger usw.
Dann soll sp_helptext den Text einer gespeicherten Prozedur ausspucken. Dadurch wird der Text einer verschlüsselten gespeicherten Prozedur nicht reproduziert.
Jede vollständige Lösung beinhaltet das Programmieren von etwas, insbesondere wenn verschlüsselte gespeicherte Prozeduren und Trigger beteiligt sind. Ein Beispielartikel zur programmgesteuerten Ermittlung der Elemente in der DB. Der zum Entschlüsseln gespeicherter SQL Server 2000-Prozesse erforderliche Datentyp wurde in SQL Server 2005 angezeigt, sodass Sie SQL in SQL Server 2000 nicht zum Entschlüsseln eigener verschlüsselter gespeicherter Prozesse verwenden konnten (Sie konnten sie jedoch in SQL Server 2005 in SQL entschlüsseln) Kein Wunder, wenn dies auch für den Übergang von 2005 zu 2008 gilt. Ich habe vor einigen Jahren das Interesse an der Entschlüsselung gespeicherter Prozeduren verloren.
Ich weiß, wie man programmgesteuert alle Informationen findet, die Sie zum Skripten der Objekte benötigen. Um sie tatsächlich zu skripten, müssen Sie den Skriptgenerierungscode möglicherweise selbst schreiben.
Wenn Sie Code schreiben, um alles über die vorhandenen Objekte zu erfahren, lautet der Begriff für Google "SQL Server Data Dictionary".
Ich werde Ihnen einige Startbeispiele geben.
So finden Sie alle Fremdschlüsseleinschränkungen für eine bestimmte Tabelle:
So finden Sie alle Fremdschlüsseleinschränkungen, die auf eine bestimmte Tabelle verweisen:
quelle