Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Найти упоменания таблицы во всех процедурах и функциях  [new]
MikleBess
Member

Откуда:
Сообщений: 147
Задавствуйте!
Понадобилось найти все упоминания о таблице.
Сервер 2008.
Поможите?
17 апр 12, 11:01    [12425913]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
MikleBess
Member

Откуда:
Сообщений: 147
Извените, конечно "упоминания"
17 апр 12, 11:05    [12425941]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
Penner
Member

Откуда:
Сообщений: 342
http://www.red-gate.com/products/sql-development/sql-search/
17 апр 12, 11:13    [12425992]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
MikleBess
Задавствуйте!
Понадобилось найти все упоминания о таблице.
Сервер 2008.
Поможите?
select * from sysobjects where xtype in ('P', 'v') and object_definition(id) like 'имятаблицы'

Но это будет не упоминания об этой таблице, а упоминание о тексте "имятаблицы"
17 апр 12, 11:31    [12426121]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
alexeyvg
select * from sysobjects where xtype in ('P', 'v') and object_definition(id) like 'имятаблицы'
select * from sysobjects where xtype in ('P', 'V', 'FN') and object_definition(id) like '%имятаблицы%'
17 апр 12, 11:32    [12426137]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
user89
Member

Откуда:
Сообщений: 2083
MikleBess,

???
7475074
17 апр 12, 11:33    [12426156]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
alexeyvg
alexeyvg
select * from sysobjects where xtype in ('P', 'v') and object_definition(id) like 'имятаблицы'
select * from sysobjects where xtype in ('P', 'V', 'FN') and object_definition(id) like '%имятаблицы%'
Всё гораздо хуже. Слева и справа от имени таблицы должны быть разделители или начало/конец строки.
Возможно упоминание таблицы в комментариях. О динамическом SQL вообще промолчу.

По поводу типов объектов. Бывают еще триггеры. И функции бывают другого типа.
17 апр 12, 11:39    [12426212]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
MikleBess
Member

Откуда:
Сообщений: 147
Огромное спасибо!
То что нужно.
17 апр 12, 11:42    [12426241]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Так тоже можно.

SELECT OBJECT_SCHEMA_NAME(S.object_id) AS [Schema], OBJECT_NAME(S.object_id) AS [Object] 
FROM sys.sql_modules AS S WHERE S.definition LIKE '%<table name>%'
ORDER BY 1, 2
17 апр 12, 11:44    [12426270]     Ответить | Цитировать Сообщить модератору
 Re: Найти упоменания таблицы во всех процедурах и функциях  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
iap
Всё гораздо хуже. Слева и справа от имени таблицы должны быть разделители или начало/конец строки.
Возможно упоминание таблицы в комментариях. О динамическом SQL вообще промолчу.
Так я и написал, что "не упоминания об этой таблице, а упоминание о тексте "имятаблицы""

Но для простого случая сойдёт, например, для того, что бы программисту вспомнить, где он обращается к таблице.
17 апр 12, 14:34    [12427627]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить