Dies ist der Fall, wenn es in der von mir überprüften Datenbank eine Archivtabelle gibt, die den Benutzerverlauf speichert, und es gibt eine Trigger- oder Speicherprozedur, die nach einiger Zeit Zeilen aus dieser Tabelle löscht, um die Übergröße der zu vermeiden Ebenso habe ich die Datenbank nicht entworfen. Ich übernehme nur die Wartung einer Anwendung, die diese Datenbank verwendet. Daher kenne ich den Namen dieser gespeicherten Prozeduren oder Trigger nicht. Ich möchte diese gespeicherte Prozedur suchen oder auslösen, den Code überprüfen und ändern, um diesen "Benutzerverlauf" länger in der Tabelle zu belassen.
Jemand sagte mir, ich solle die Tabelle "sysobjects" überprüfen, in der ich tatsächlich etwas mit dem gleichen Namen der Tabelle sehen kann, aber dies ist die einzige Information, die ich abrufen konnte.
Danke.
syscomments
mehrere Zeilen für ein Objekt, das die 4000-Zeichen-Grenze überschreitet, sodass Abfragen, die es verwenden, genauso gültig sind wiesys.sql_modules
. Ich empfehle essys.sql_modules
jedoch weiterhin, dasyscomments
es abgeschrieben wird.Probieren Sie ApexSQL Search aus
ApexSQL Search ist ein KOSTENLOSES SQL Server Management Studio- und Visual Studio-Add-In, das unter anderem über die Funktion "Abhängigkeiten anzeigen" verfügt. Mit der Funktion "Abhängigkeiten anzeigen" können alle Beziehungen von SQL-Datenbankobjekten angezeigt werden, einschließlich der Beziehungen zwischen verschlüsselten und Systemobjekten, SQL Server 2012-spezifischen Objekten und Objekten, die in mit Transparent Data Encryption (TDE) verschlüsselten Datenbanken gespeichert sind.
Mit der Funktion "Abhängigkeiten anzeigen" können Sie auch das Layout des visuellen Abhängigkeitsdiagramms einrichten und anpassen, einschließlich der dargestellten Beziehungen, des Layouts und der Größe des generierten Diagramms sowie der Drilldown-Tiefe der Abhängigkeiten
Haftungsausschluss: Ich arbeite für ApexSQL als Support Engineer
quelle
Zum späteren Nachschlagen ab 2008 gibt es auch einen DMV, der verwendet werden kann.
sys.dm_sql_referencing_entities
. Ich bevorzuge es im Allgemeinen, SQL_Modules zu verwenden, da es unter anderem Fehlalarme vermeidet. Ich habe es hier besprochen, aber im Grunde genommen, wenn Sie einen Code wie diesen haben:Sie erhalten Ergebnisse für die Tabelle ABC, die Tabelle ABCLog, die Ansicht vw_ABC, die gespeicherte Prozedur sp_Update_ABC usw. Nach meinem besten Wissen verarbeitet die DMV sowohl verschlüsselte als auch unverschlüsselte SPs, während die Methode sql_modules nur mit unverschlüsselten SPs funktioniert .
Die DMV-Version derselben Abfrage lautet wie folgt:
quelle
Sie können auch die Katalogansicht sys.sql_expression_dependencies verwenden . Verwenden Sie diese Abfrage:
quelle