Sie können verwenden sp_help
um Informationen über Parameter und Informationen über das Objekt zu erhalten.
EXEC sp_help yourProcedure;
Um herauszufinden, was er für Tabellen und Spalten verwendet, können Sie dann sp_depends
EXEC sp_depends yourProcedure;
Aquí ist ein nützlicher Link, der die Abhängigkeiten von Sql-Objekten auflistet
Oder Sie können auch verwenden. Aber es ist nur für 2008 und höher.
SELECT * FROM sys.dm_sql_referenced_entities ('dbo.yourProcedure', 'OBJECT');
SELECT * FROM sys.dm_sql_referencing_entities('dbo.yourProcedure', 'OBJECT');
denn sp_depends
ist veraltet.
Wenn die Speicherprozedur dynamisches Sql verwendet. Dann ist das einzige, was Sie verwenden müssen:
sp_helptext yourProcedure
Dadurch wird der Inhalt der Prozedur zurückgegeben.
Wenn Sie Dynamic sql in Ihrer Speicherprozedur haben. Sie könnten etwas wie dies tun:
DECLARE @tbl TABLE(Text VARCHAR(MAX))
INSERT INTO @tbl
EXEC sp_helptext yourProcedure
SELECT
sysTables.name
FROM
dbo.sysobjects AS sysTables
WHERE EXISTS
(
SELECT
NULL
FROM
@tbl AS tbl
WHERE
tbl.Text LIKE '%'+sysTables.name+'%'
)
Dadurch werden die in der Speicherprozedur verwendeten Objekte zurückgegeben.