SQL 2005 - Поиск хранимых процедур для текста (не весь текст ищется) - PullRequest
4 голосов
/ 02 августа 2009

Следующие биты кода, похоже, не выполняют поиск во всем определении подпрограммы.

Кодовый блок 1:

select top 50 * from information_schema.routines
where routine_definition like '%09/01/2008%' and specific_Name like '%NET'

Кодовый блок 2:

SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_DEFINITION LIKE '%EffectiveDate%' AND ROUTINE_TYPE='PROCEDURE' and ROUTINE_NAME like '%NET'

Я точно знаю, что эти биты SQL работают в большинстве случаев. Проблема заключается в следующем: когда я запускаю это для «EffectiveDate», которое скрыто в строке ~ 800 в нескольких хранимых процедурах, эти хранимые процедуры никогда не отображаются в результатах. Это как будто «как» только ищет так глубоко.

Любые советы по исправлению?

Я хочу найти ВСЕ хранимую процедуру для указанного текста.

Спасибо!

Ответы [ 4 ]

10 голосов
/ 02 августа 2009
select * 
FROM   INFORMATION_SCHEMA.ROUTINES 
WHERE  OBJECTPROPERTY(OBJECT_ID(SPECIFIC_NAME),'IsMSShipped') =0 
       and OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME)) like '%EffectiveDate%' 
       AND ROUTINE_TYPE='PROCEDURE'
       AND ROUTINE_NAME like '%NET'

Вместо этого используйте определение объекта.

8 голосов
/ 02 августа 2009

Просто чтобы уточнить, почему текст процедуры усекается :

ROUTINE_DEFINITION nvarchar (4000)

Возвращает первые 4000 символов из текст определения функции или хранимая процедура, если функция или хранимая процедура не зашифрована. В противном случае возвращает NULL.

Чтобы убедиться, что вы получите полный определение, запросить OBJECT_DEFINITION функция или определение столбца в sys.sql_modules просмотр каталога.

2 голосов
/ 21 апреля 2010

Вот другой подход, если вы ищете функцию поиска по базам данных SQL-сервера. В основном бесплатный инструмент поиска от RedGate.

Бесплатный 'Поиск' от Redgate

0 голосов
/ 29 апреля 2010

очень быстро, живо и удобно Прямая ссылка http://www.red -gate.com / продукция / SQL_Search / index.htm

...