Есть ли способ создать таблицу с именами всех хранимых процедур в конкретной базе данных - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть база данных, в которой есть хранилище процедур в этой конкретной базе данных. Есть ли способ, которым каждый может составить таблицу имен всех хранимых процедур в виде таблицы, вместо того, чтобы вручную вводить каждую из них. Как бы я написал запрос? Есть ли другой способ сделать это?

Ответы [ 3 ]

1 голос
/ 02 апреля 2019

Есть много способов получить список хранимых процедур.

Здесь после 3-х способов: Последний - старый, во времена сервера SQL 2000

select name,create_date,modify_date from sys.procedures 
select name,create_date,modify_date from sys.objects  where type='p'
select name,crdate,refdate from sysobjects where xtype='p'
1 голос
/ 02 апреля 2019

Шон Ланге прав, у вас уже есть данные в таблице sys.procedures.Если вы все еще хотите создать таблицу:

SELECT * INTO [Table_Name] FROM sys.procedures
0 голосов
/ 03 апреля 2019

Если вам нужна дополнительная информация, кроме имен, вы также можете получить ее. Например, вот запрос, который извлекает базу данных, схему, процедуру, определение, дату создания и дату последнего изменения для всех хранимых процедур в базе данных. Вы можете объединить это с вызовом хранимой процедуры sys.sp_MSforeachdb для создания таблицы для каждой базы данных на сервере.

SELECT
    DB_NAME() AS [Database],
    s.name AS [Schema],
    p.name AS [Procedure],
    ISNULL(d.definition,'***ENCRYPTED PROCEDURE***') AS [Definition],
    p.create_date,
    p.modify_date
INTO [Table_Name]
FROM sys.procedures AS p
JOIN sys.sql_modules AS d on p.object_id = d.object_id
JOIN sys.schemas AS s on p.schema_id = s.schema_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...