Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wymień wszystkie procedury składowane z nazwą schematu

SELECT [schema] = OBJECT_SCHEMA_NAME([object_id]),
  name
FROM sys.procedures;

lub

SELECT [schema] = SCHEMA_NAME([schema_id]),
  name
FROM sys.procedures;

W przypadku określonej bazy danych możesz po prostu najpierw zmienić kontekst na tę bazę danych lub nieznacznie zmienić zapytanie Marca (moje zapytania w tym przypadku nie są dobre, ponieważ opierają się na funkcjach kontekstowych):

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;

Jeśli chcesz to zrobić dla wszystkich baz danych:

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;

Klauzule sortowania są niezbędne w przypadku, gdy masz bazy danych z różnymi sortowaniami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Tylko ostatni wpis w GROUP BY

  2. 3 sposoby na zwrócenie liczby wierszy w każdej partycji w SQL Server (T-SQL)

  3. Jak zastąpić NULL inną wartością w SQL Server – ISNULL()

  4. Dodaj wiele rekordów za pomocą Linq-to-SQL

  5. Dzielenie ciągu w serwerze sql