Найти ссылку на (опечатку) объекта в хранимых процессах сервера sql - PullRequest
1 голос
/ 18 ноября 2011

Я знаю, что в базе данных SQL, хранящейся в proc, есть объект sql с ошибкой (следовательно, несуществующий).Каков наилучший способ поиска этой строки в теле каждого сохраненного процесса в базе данных?

Это будет эквивалентно поиску всех ссылок в Visual Studio, что очень полезно.

Серверэто sql server 2005.

Большое спасибо

Ответы [ 3 ]

0 голосов
/ 18 ноября 2011
SELECT name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%YourTableName%'

Есть и другие способы, такие как проверка информации_schema.routines, присоединение к sys.sql_modules.

0 голосов
/ 18 ноября 2011

используйте это:

SELECT
    OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id), o.type_desc
    FROM sys.sql_modules        m
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition like '%whatever%'

он будет искать в хранимых процедурах, функциях и представлениях вашу "любую" строку.

Вот самая простая версия (исключает тип объекта изрезультаты):

SELECT
    OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id)
    FROM sys.sql_modules  m
    WHERE m.definition like '%whatever%'
0 голосов
/ 18 ноября 2011

Вы можете создать один сценарий для всех хранимых процедур в базе данных, а затем выполнить поиск по нему.

Щелкните правой кнопкой мыши на базе данных и перейдите к пункту «Генерирование сценариев» .... должно быть достаточно очевиднооттуда ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...