TCM*_*TCM 3 sql-server sql-server-2008
我有一个包含100个存储过程的数据库.我想找到这些中最长的存储过程.我怎么能找到它?
目前我正在使用
Select text,MAX(len(text))
from syscomments
group by text;
但我无法在其中找到存储过程的名称.
提前致谢 :)
Mar*_*ith 10
sys.comments
将长定义划分为4000个字符块.使用sys.sql_modules
以避免此问题.
SELECT TOP 1
OBJECT_NAME(object_id) AS Name,
LEN(definition) AS Length,
CAST((SELECT definition AS [processing-instruction(x)] FOR XML PATH('')) AS XML) AS Definition
FROM sys.sql_modules
WHERE OBJECTPROPERTY(object_id, 'IsProcedure')=1
ORDER BY LEN(definition) DESC
Run Code Online (Sandbox Code Playgroud)