所有 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
?
我最近在使用 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
?