Может ли кто-нибудь посоветовать о способе перечислить все хранимые процедуры вместе с именами их схем в базе данных? Благодаря!Список всех хранимых процедур с именем схемы
ответ
Попробуйте это:
SELECT
SchemaName = s.name,
ProcedureName = pr.name
FROM
sys.procedures pr
INNER JOIN
sys.schemas s ON pr.schema_id = s.schema_id
Это должны быть перечислены все хранимые процедуры и их имя схемы в качестве результирующего набора.
Оба представления - sys.procedures
и sys.schemas
- имеют еще несколько атрибутов - проверьте их, если они вам нужны, включите их в свой запрос.
Спасибо за ваше предложение. Как я могу использовать это для перечисления всех хранимых процедур и их схем для конкретной базы данных? – daniness
@ daniness: перейдите в эту базу данных ('use (yourdatabase)'), а затем выполните этот фрагмент code: –
SELECT [schema] = OBJECT_SCHEMA_NAME([object_id]),
name
FROM sys.procedures;
или
SELECT [schema] = SCHEMA_NAME([schema_id]),
name
FROM sys.procedures;
Для конкретной базы данных, вы можете просто изменить контекст этой базы данных первым, или немного изменить запрос Марка, (мои запросы не хорошо в этом случае, потому что они полагаются на функции которые являются контекстно-зависимым):
SELECT
SchemaName = s.name,
ProcedureName = pr.name
FROM
databasename.sys.procedures pr
INNER JOIN
databasename.sys.schemas s ON pr.schema_id = s.schema_id;
Если вы хотите сделать это для всех баз данных:
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += N'
UNION ALL SELECT db = N''' + name + ''',
s.name COLLATE Latin1_General_CI_AI,
o.name COLLATE Latin1_General_CI_AI
FROM ' + QUOTENAME(name) + '.sys.procedures AS o
INNER JOIN ' + QUOTENAME(name) + '.sys.schemas AS s
ON o.[schema_id] = s.[schema_id]'
FROM sys.databases
-- WHERE ... -- probably don't need system databases at least
SELECT @sql = STUFF(@sql, 1, 18, '')
-- you may have to adjust ^^ 18 due to copy/paste, cr/lf, tabs etc
+ ' ORDER BY by db, s.name, o.name';
EXEC sp_executesql @sql;
Предложения сопоставления необходимы, если у вас есть базы данных с различными сортировками.
это может помочь вам ..
SELECT * FROM sys.procedures;
Он не будет возвращать все процедуры. –
Вы можете использовать Script Generator для их получения. В левой панели щелкните правой кнопкой мыши по базе данных, для которой вы хотите получить хранимые процедуры, Задачи-> Сгенерировать скрипты. Нажмите «Далее» и выберите «Выбрать конкретные объекты базы данных» и выберите «Хранимые процедуры» и нажмите «Далее», там вы можете настроить, как вам нужно, и создать скрипты.
Попробуйте это:
execute [sys].[sp_stored_procedures]
Или попробовать это, а также получить все параметры:
execute [sys].[sp_sproc_columns]
Хорошо ... Вы должны перебрать все имена каталогов БД с этим, но. ..
SELECT name,crdate FROM dbo.sysobjects WHERE (type = 'P') order by name
SELECT [schema] = OBJECT_SCHEMA_NAME([object_id]),name FROM sys.procedures;
select OBJECT_SCHEMA_NAME([object_id]) as 'SchemaName',name as 'SP Name ' ,
create_date,modify_date FROM sys.procedures order by OBJECT_SCHEMA_NAME([object_id]), name
Добавьте описание к нему, почему он будет работать и как он работает. – piyushj
- 1. Как изменить имя схемы таблицы во всех хранимых процедур
- 2. Список зарегистрированных хранимых процедур с их описанием
- 3. Инвентаризация всех хранимых процедур в пакете SSIS
- 4. Проблемы с производительностью, выполняющие список хранимых процедур
- 5. хранимых процедур
- 6. Список таблиц, используемых во всех хранимых процедурах с именем схемы SP
- 7. Поиск всех хранимых процедур вызова функции
- 8. Отображение хранимых процедур объекта?
- 9. Анализ всех хранимых процедур в базе данных
- 10. GRANT EXECUTE для всех хранимых процедур
- 11. Написание рекурсивных хранимых процедур
- 12. Список имени хранимых процедур оракула с оригинальным футляром
- 13. список хранимых процедур Run Time Conversion
- 14. Список хранимых процедур внутри базы данных
- 15. Список выполненных хранимых процедур и заданных параметров
- 16. переименование хранимых процедур
- 17. Параметры списка хранимых процедур Oracle
- 18. Проблемы с разрешением хранимых процедур
- 19. Экспорт хранимых процедур Mysql
- 20. Маркировка имен хранимых процедур
- 21. Анализ хранимых процедур
- 22. Сохранить список температуры в рекурсивной хранимых процедур
- 23. Список хранимых процедур, которые используют данную таблицу
- 24. Список хранимых процедур/функций Командная строка Mysql
- 25. Mysql - Создание хранимых процедур
- 26. Библиотеки хранимых процедур
- 27. Выполнение набора хранимых процедур
- 28. Форматирование хранимых процедур
- 29. Оптимизация хранимых процедур Oracle
- 30. SQL Server - поиск хранимых процедур?
попробовать 'выбрать * из DatabaseName.information_schema.routines где routine_type =«PROCEDURE'' – aserwin
Спасибо, aserwin и marc_s. Как я узнаю, что это будет список ВСЕХ хранимых процедур для этой базы данных b/c Я запустил это и получил 164 строки по сравнению с 1,510 записями, когда я запускал другой запрос, который я не сохранил, поэтому я не уверен, что это было :-(. – daniness