ОБНОВЛЕНИЕ
Как указывает OMG Poines при поиске определения, вы хотите использовать вместо него модули
Возможно, вам все еще нужны столбцы, поэтому вы захотите присоединить их к таблице sys.columns
SELECT OBJECT_NAME(m.object_id), c.*
FROM SYS.SQL_MODULES m
INNER JOIN sys.columns c
ON m.object_id = c.object_Id
WHERE m.definition like N'%externalDB%'
Для бедных душ Не , использующих 2005 или более позднюю версию, вы все еще можете использовать ниже.
Для поиска представлений с ограничением в 4000 символов
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
where
VIEW_DEFINITION like '%externalDB%'
и если вам нужны столбцы из этих представлений, вы можете сделать следующее
select c.* from
information_schema.VIEWS vw
INNER JOIN information_schema.COLUMNS c
ON vw.Table_catalog = c.Table_catalog
and vw.TABLE_SCHEMA= c.TABLE_SCHEMA
and vw.TABLE_NAME= c.TABLE_NAME
where
VIEW_DEFINITION like '%externalDB%'
Однако, конечно, если эти представления ссылаются на локальные таблицы, вы также получите эти столбцы
Примечание : Возможно, вы захотите использовать SYSCOMMENTS вместо подпрограмм, но если ваша строка поиска ищет что-то, кратное 4000, вы все равно столкнетесь с проблемами, так что это неполный ответ для тех в SQL 2000