Как найти название самой длинной хранимой процедуры? - PullRequest
3 голосов
/ 02 сентября 2010

У меня есть база данных, которая содержит 100 хранимых процедур.Я хочу найти, какая самая длинная хранимая процедура в этих.Как я могу найти это?

В настоящее время я использую

Select text,MAX(len(text)) from syscomments group by text;

Но я не могу найти название хранимой процедуры в нем.1009 * Заранее спасибо:)

1 Ответ

10 голосов
/ 02 сентября 2010

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...