我使用此查询获取数据库中的所有存储过程(我使用的是 Microsoft SQL Server 2008):
SELECT
SPECIFIC_NAME, ROUTINE_DEFINITION
FROM
INFORMATION_SCHEMA.ROUTINES
Run Code Online (Sandbox Code Playgroud)
对于几乎所有结果,一切正常,但对于很长ROUTINE_DEFINITION
的行,结果被裁剪。
你知道如何解决吗?
请尝试使用sp_helptext 'ProcedureName'
或者您可以使用sys.sql_modules
或OBJECT_DEFINITION([object_id])
函数来获取存储过程文本。所有这些都给出了您的确切代码。Information_Schema.Routines
将放弃最大 nvarchar(4000)。