Ich habe eine Tabelle in der Entwicklungsumgebung zu Testzwecken erstellt und es gibt nur wenige Sp's, die auf diese Tabelle verweisen. Jetzt habe ich diese Tabelle zu löschen sowie alle sp' s, die diese Tabelle verweisen zu identifizieren. Ich bin mit Schwierigkeiten konfrontiert, um Liste aller sp' s zu finden. Bitte schlagen Sie einige Abfrage unter der Annahme, dass der Name der Tabelle ist 'x' und Datenbank ist Sql Server 2005.
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%TableNameOrWhatever%'
Übrigens: Hier finden Sie eine praktische Quelle für diese Art von Fragen: Querying the SQL Server System Catalog FAQ
Eine andere Möglichkeit wäre die Verwendung des Sql Server Management Studio.
Suchen Sie die Tabelle, klicken Sie mit der rechten Maustaste und wählen Sie "Abhängigkeiten anzeigen".
EDIT
Aber, wie die Kommentatoren schon sagten, ist es nicht sehr zuverlässig.
SELECT
o.name
FROM
sys.sql_modules sm
INNER JOIN sys.objects o ON
o.object_id = sm.object_id
WHERE
sm.definition LIKE '%<table name>%'
Denken Sie daran, dass dadurch auch SPs gefunden werden, bei denen der Tabellenname in den Kommentaren steht oder der Tabellenname eine Teilzeichenkette eines anderen Tabellennamens ist, der gerade verwendet wird. Wenn Sie zum Beispiel Tabellen mit den Namen "test" und "test_2" haben und versuchen, nach SPs mit "test" zu suchen, erhalten Sie Ergebnisse für beide.