Est-ce que quelqu'un peut conseiller sur une façon de lister toutes les procédures stockées avec leurs noms de schéma dans une base de données? Merci!
SELECT [schema] = OBJECT_SCHEMA_NAME([object_id]),
name
FROM sys.procedures;
ou
SELECT [schema] = SCHEMA_NAME([schema_id]),
name
FROM sys.procedures;
Pour une base de données spécifique, vous pouvez d'abord modifier le contexte de cette base de données ou modifier légèrement la requête de Marc (mes requêtes ne sont pas efficaces dans ce cas car elles reposent sur des fonctions sensibles au contexte):
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;
Si vous voulez le faire pour toutes les bases de données:
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;
Les clauses collate sont nécessaires si vous avez des bases de données avec des collations différentes.
Essaye ça:
SELECT
SchemaName = s.name,
ProcedureName = pr.name
FROM
sys.procedures pr
INNER JOIN
sys.schemas s ON pr.schema_id = s.schema_id
Cela devrait répertorier toutes les procédures stockées et leur nom de schéma en tant que jeu de résultats.
Les deux vues - sys.procedures
et sys.schemas
- ont quelques attributs supplémentaires. Vérifiez-les, si vous en avez besoin, incluez-les dans votre requête.
cela peut vous aider ..
SELECT * FROM sys.procedures;
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
Vous pouvez utiliser Script Generator pour les obtenir. Dans le volet de gauche, cliquez avec le bouton droit de la souris sur la base de données pour laquelle vous souhaitez obtenir des procédures stockées. Tâches-> Générer des scripts. Cliquez sur Suivant, choisissez Sélectionner des objets de base de données spécifiques, sélectionnez Procédures stockées et cliquez sur Suivant. les scripts.
Essaye ça:
execute [sys].[sp_stored_procedures]
Ou essayez ceci et obtenez également tous les paramètres:
execute [sys].[sp_sproc_columns]
Ok ... vous devrez parcourir tous les noms de catalogue DB avec ceci, mais ...