Можно ли найти в хранимой процедуре SQL Server Management Studio по имени или по имени? (в контексте активной базы данных)
Спасибо за помощь
Можно ли найти в хранимой процедуре SQL Server Management Studio по имени или по имени? (в контексте активной базы данных)
Спасибо за помощь
Вы можете использовать:
select *
from
sys.procedures
where
name like '%name_of_proc%'
если вам нужен код, который вы можете посмотреть в таблице syscomments
select text
from
syscomments c
inner join sys.procedures p on p.object_id = c.object_id
where
p.name like '%name_of_proc%'
Изменить обновление:
вы также можете использовать стандартную версию ansi
SELECT *
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_NAME LIKE '%name_of_proc%'
Предполагая, что вы находитесь в разделе "Сведения об объекте" (F7), в котором отображается список хранимых процедур, нажмите кнопку "Фильтры" и введите имя (или частичное имя).
Это будет работать и для таблиц и представлений (помимо прочего), а не только для sprocs:
SELECT
'[' + s.name + '].[' + o.Name + ']',
o.type_desc
FROM
sys.objects o
JOIN sys.schemas s ON s.schema_id = o.schema_id
WHERE
o.name = 'CreateAllTheThings' -- if you are certain of the exact name
OR o.name LIKE '%CreateAllThe%' -- if you are not so certain
Он также дает вам имя схемы, которое будет полезно в любой нетривиальной базе данных (например, где вам нужен запрос, чтобы найти хранимую процедуру по имени).
Очень аккуратный трюк Я наткнулся на попытку какой-либо инъекции SQL, в проводнике объектов в окне поиска просто используйте ваши процентные символы, и это будет искать ВСЕ хранимые процедуры, функции, представления, таблицы, схемы, индексы... Я устал думая больше:)
Вы можете использовать этот запрос:
SELECT
ROUTINE_CATALOG AS DatabaseName ,
ROUTINE_SCHEMA AS SchemaName,
SPECIFIC_NAME AS SPName ,
ROUTINE_DEFINITION AS SPBody ,
CREATED AS CreatedDate,
LAST_ALTERED AS LastModificationDate
FROM INFORMATION_SCHEMA.ROUTINES
WHERE
(ROUTINE_DEFINITION LIKE '%%')
AND
(ROUTINE_TYPE='PROCEDURE')
AND
(SPECIFIC_NAME LIKE '%AssessmentToolDegreeDel')
Как вы можете видеть, вы также можете выполнять поиск внутри тела хранимой процедуры.