it-swarm.com.de

SQL-Liste aller benutzerdefinierten Funktionen in einer Datenbank

Ich suche eine SQL-Abfrage, die die Funktionsdefinitionen für alle benutzerdefinierten Funktionen in einem Datenbankkatalog ausgibt.

Ich habe soweit gefunden

SELECT OBJECT_DEFINITION (OBJECT_ID(N'dbo.UserFunctionName')) AS [Object Definition]

und

SELECT ROUTINE_NAME FROM information_schema.routines WHERE routine_type = 'function'

ich kann mir jedoch keine Möglichkeit vorstellen, die ROUTINE_NAME-Liste der OBJECT_ID zuzuweisen.

Der Zweck hier ist ein durchsuchbarer Text der benutzerdefinierten Funktionsdefinitionen in einer Datenbank für die Datenbankänderungsanalyse. Wenn etwas wie eine vollständige SQL-Prozedur oder ein spezielles Hilfsprogramm einfacher ist, werde ich das tun und es veröffentlichen.

35
stackuser83
SELECT name, definition, type_desc 
  FROM sys.sql_modules m 
INNER JOIN sys.objects o 
        ON m.object_id=o.object_id
WHERE type_desc like '%function%'
60
RandomUs1r

Sie könnten einen CTE verwenden:

with functions(routine_name) as 
  (SELECT ROUTINE_NAME FROM information_schema.routines WHERE routine_type = 'function')
select 
  OBJECT_DEFINITION(OBJECT_ID(routine_name)) AS [Object Definition] 
from 
  functions
7
Geoff
SELECT O.name, M.definition, O.type_desc, O.type
FROM sys.sql_modules M
INNER JOIN sys.objects O ON M.object_id=O.object_id
WHERE O.type IN ('IF','TF','FN')
3