所有 SQL 服务器数据库存储过程的屏幕转储

Screen dump of all SQL Server database stored procedures

我最近在使用 T-SQL,我想在其中一个存储过程中使用某种功能,问题是,我不记得存储过程的名称是什么,我手工制作了这个:

DECLARE @storedProcsDumpTBL TABLE([SP_DUMP_TEXT] nVARCHAR(500))
DECLARE @firstValue AS VARCHAR(20)
DECLARE @prefix AS VARCHAR(20)
DECLARE @storedProcFullName AS VARCHAR(100)
DECLARE @storedProcNameTBL AS VARCHAR(100)

DECLARE hammerCursor CURSOR FOR
    SELECT name 
    FROM sys.procedures
    ORDER BY 1

OPEN hammerCursor

FETCH NEXT FROM hammerCursor INTO @storedProcNameTBL

WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC xp_sprintf @storedProcFullName OUTPUT, N'dbo.%s',@storedProcNameTBL

    INSERT INTO @storedProcsDumpTBL([SP_DUMP_TEXT]) 
    EXEC sp_helptext @storedProcFullName

    FETCH NEXT FROM hammerCursor INTO @storedProcNameTBL
END

CLOSE hammerCursor
DEALLOCATE hammerCursor

SELECT * FROM @storedProcsDumpTBL

有点符合我的目的,但还有更好的吗?

怎么样

select object_definition(object_id) ddl
from sys.procedures

?