如果routine_definition 大于4000 个字符,则获取存储过程裁剪结果的SQL 查询

Row*_*ish 6 sql sql-server

我使用此查询获取数据库中的所有存储过程(我使用的是 Microsoft SQL Server 2008):

 SELECT
     SPECIFIC_NAME, ROUTINE_DEFINITION
 FROM 
     INFORMATION_SCHEMA.ROUTINES
Run Code Online (Sandbox Code Playgroud)

对于几乎所有结果,一切正常,但对于很长ROUTINE_DEFINITION的行,结果被裁剪。

你知道如何解决吗?

Sta*_*ser 7

请尝试使用sp_helptext 'ProcedureName'或者您可以使用sys.sql_modulesOBJECT_DEFINITION([object_id])函数来获取存储过程文本。所有这些都给出了您的确切代码。Information_Schema.Routines将放弃最大 nvarchar(4000)。