Пожалуйста, помните, что текстовый столбец в syscomments - это varchar (255), поэтому одна большая процедура может состоять из многих строк в syscomments, таким образом, вышеприведенный выбор не найдет имя процедуры, если имя таблицы, которую вы ищете,был разбит на 2 строки текста в syscomments.
Я предлагаю следующий выбор, который будет обрабатывать описанный выше случай:
declare @text varchar(100)
select @text = "%tbl_books%"
select distinct o.name object
from sysobjects o,
syscomments c
where o.id=c.id
and o.type='P'
and (c.text like @text
or exists(
select 1 from syscomments c2
where c.id=c2.id
and c.colid+1=c2.colid
and right(c.text,100)+ substring(c2.text, 1, 100) like @text
)
)
order by 1
- похвалы за это идут создателю ASEisql