Skip to content

Instantly share code, notes, and snippets.

@maxim-s
Created March 14, 2017 14:21
Show Gist options
  • Save maxim-s/2c3809fa737f39e898d4098b7bd57ef4 to your computer and use it in GitHub Desktop.
Save maxim-s/2c3809fa737f39e898d4098b7bd57ef4 to your computer and use it in GitHub Desktop.
-- stored proc mapping sql
WITH ExplicitRoutines AS
(
SELECT
ROUTINE_SCHEMA AS [Schema]
,ROUTINE_NAME AS Name
,ROUTINE_TYPE
,DATA_TYPE
,ROUTINE_SCHEMA AS BaseObjectSchema
,ROUTINE_NAME AS BaseObjectName
FROM
INFORMATION_SCHEMA.ROUTINES
),
Synonyms AS
(
SELECT
OBJECT_SCHEMA_NAME(object_id) AS [Schema]
,name AS Name
,ROUTINE_TYPE
,DATA_TYPE
,ROUTINE_SCHEMA AS BaseObjectSchema
,ROUTINE_NAME AS BaseObjectName
FROM
sys.synonyms
JOIN INFORMATION_SCHEMA.ROUTINES ON
OBJECT_ID(ROUTINES.ROUTINE_SCHEMA + '.' + ROUTINES.ROUTINE_NAME) = OBJECT_ID(base_object_name)
)
SELECT
XS.[Schema]
,XS.Name
,RoutineSubType =
CASE
WHEN XS.DATA_TYPE = 'TABLE' THEN 'TableValuedFunction'
WHEN XS.DATA_TYPE IS NULL THEN 'StoredProcedure'
ELSE 'ScalarValuedFunction'
END
,ISNULL( OBJECT_DEFINITION( OBJECT_ID( XS.BaseObjectSchema + '.' + XS.BaseObjectName)), '') AS [Definition]
,XS.BaseObjectSchema
,XS.BaseObjectName
,[Description] = XProp.Value
FROM
(
SELECT * FROM ExplicitRoutines
UNION ALL
SELECT * FROM Synonyms
) AS XS
OUTER APPLY (SELECT NULL AS Value) AS XProp
WHERE
[Schema] = 'dbo'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment