SELECT db_name() defaultCatalog, schema_name() defaultSchema
select db_name()
USE "" select db_name()
SELECT db_name() CATALOGNAME, A.TABLE_SCHEMA SCHEMANAME, A.TABLE_NAME TABLENAME
, CASE WHEN A.TABLE_TYPE ='BASE TABLE' THEN 'T' ELSE A.TABLE_TYPE END TABLE_TYPE
, '' DESCRIPTION
FROM INFORMATION_SCHEMA.TABLES A
WHERE A.TABLE_TYPE ='BASE TABLE'
ORDER BY SCHEMANAME, TABLENAME
SELECT db_name() CATALOGNAME, A.TABLE_SCHEMA SCHEMANAME, A.TABLE_NAME TABLENAME
, CASE WHEN A.TABLE_TYPE ='VIEW' THEN 'V' ELSE A.TABLE_TYPE END TABLE_TYPE
, '' DESCRIPTION
FROM INFORMATION_SCHEMA.TABLES A
WHERE A.TABLE_TYPE ='VIEW'
ORDER BY SCHEMANAME, TABLENAME
SELECT db_name() CATALOGNAME, A.TABLE_SCHEMA SCHEMANAME, A.TABLE_NAME TABLENAME, A.COLUMN_NAME COLUMNNAME
, A.DATA_TYPE DATATYPE
, CHARACTER_MAXIMUM_LENGTH LENGTH
, CASE WHEN A.NUMERIC_PRECISION IS NOT NULL THEN A.NUMERIC_PRECISION ELSE A.DATETIME_PRECISION END AS 'PRECISION'
, A.NUMERIC_SCALE SCALE
, CASE WHEN A.IS_NULLABLE = 'YES' THEN 'true' ELSE 'false' END NULLABLEFLAG
, A.COLUMN_DEFAULT DEFAULT_VALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION
FROM INFORMATION_SCHEMA.COLUMNS A
ORDER BY SCHEMANAME, TABLENAME, A.ORDINAL_POSITION
SELECT db_name() CATALOGNAME, B.TABLE_SCHEMA SCHEMANAME, B.TABLE_NAME TABLENAME, B.CONSTRAINT_NAME REFKEYNAME , B.COLUMN_NAME COLUMNNAME, B.ORDINAL_POSITION REFCOLUMNSEQUENCE
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS A, INFORMATION_SCHEMA.KEY_COLUMN_USAGE B
WHERE A.TABLE_CATALOG = B.TABLE_CATALOG AND A.TABLE_SCHEMA = B.TABLE_SCHEMA AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_TYPE IN ('PRIMARY KEY', 'UNIQUE')
ORDER BY SCHEMANAME, TABLENAME, REFKEYNAME, REFCOLUMNSEQUENCE
SELECT db_name() AS 'parentCatalog', KCU1.CONSTRAINT_SCHEMA AS 'parentSchema', KCU1.TABLE_NAME AS 'parentQueryObject', KCU1.CONSTRAINT_NAME AS 'foreignKeyName', KCU1.COLUMN_NAME AS 'exportedColumn', KCU1.ORDINAL_POSITION AS 'columnSequence', KCU1.CONSTRAINT_CATALOG AS 'importCatalog', KCU1.CONSTRAINT_SCHEMA AS 'importedSchema', KCU2.TABLE_NAME AS 'importedTable', KCU2.CONSTRAINT_NAME AS 'importedUniqueKey', KCU2.COLUMN_NAME AS 'importedColumn', '' AS 'description'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1
ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG
AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA
AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2
ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG
AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION
ORDER BY parentSchema, parentQueryObject, foreignKeyName, columnSequence
SELECT db_name() AS tableCatalog, S.name AS tableSchema, T.name tableName, I.name indexName, I.is_unique uniqueRule, CASE I.type WHEN 1 THEN 3 ELSE 1 END storageType, db_name() parentCatalog, S.name parentSchema, IC.column_id, C.name columnName, CASE IC.is_descending_key WHEN 1 THEN 'D' ELSE 'A' END sortOrder, '' description
FROM sys.indexes I, sys.index_columns IC, sys.tables T, sys.columns C, sys.schemas S
WHERE I.object_id = IC.object_id
AND I.index_id = IC.index_id
AND T.object_id = IC.object_id
AND C.object_id = IC.object_id
AND C.column_id = IC.column_id
AND T.schema_id = S.schema_id
--AND I.is_primary_key = 0
ORDER BY tableSchema, tableName, indexName, IC.column_id
SELECT db_name() AS parentCatalog, S.name AS parentSchema, SYN.name AS synonymName
, CASE LTRIM(RTRIM(UPPER(PARSENAME(SYN.base_object_name,4))))
WHEN NULL THEN NULL
WHEN LTRIM(RTRIM(CONVERT(NVARCHAR(1024), SERVERPROPERTY('ServerName')))) THEN NULL
ELSE UPPER(PARSENAME(SYN.base_object_name,4))
END AS externalHostRef
, PARSENAME(SYN.base_object_name,3) AS targetCatalog
, PARSENAME(SYN.base_object_name,2) AS targetSchema
, PARSENAME(SYN.base_object_name,1) AS targetRef
, '' description
FROM sys.synonyms SYN, sys.schemas S
WHERE SYN.schema_id = S.schema_id
ORDER BY parentCatalog, parentSchema, synonymName
SELECT db_name() PARENTCATALOG, A.ROUTINE_SCHEMA PARENTSCHEMA, A.ROUTINE_NAME PROCEDURENAME, '' DESCRIPTION, CASE ROUTINE_TYPE WHEN 'FUNCTION' THEN 'F' ELSE 'P' END PROCEDURETYPE
FROM INFORMATION_SCHEMA.ROUTINES A
ORDER BY PARENTSCHEMA, PROCEDURENAME
SELECT db_name() PARENTCATALOG, A.ROUTINE_SCHEMA PARENTSCHEMA, A.ROUTINE_NAME PROCEDURENAME, '' DESCRIPTION, CASE WHEN A.ROUTINE_TYPE ='PROCEDURE' THEN 'P'ELSE A.ROUTINE_TYPE END ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES A
WHERE A.ROUTINE_TYPE ='PROCEDURE'
ORDER BY PARENTSCHEMA, PROCEDURENAME
SELECT db_name() PARENTCATALOG, A.ROUTINE_SCHEMA PARENTSCHEMA, A.ROUTINE_NAME PROCEDURENAME, '' DESCRIPTION, CASE WHEN A.ROUTINE_TYPE ='FUNCTION' THEN 'F'ELSE A.ROUTINE_TYPE END ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES A
WHERE A.ROUTINE_TYPE ='FUNCTION'
ORDER BY PARENTSCHEMA, PROCEDURENAME
(SELECT db_name() PARENTCATALOG, A.SPECIFIC_SCHEMA PARENTSCHEMA, A.SPECIFIC_NAME PARENTQUERYOBJECT, CASE A.PARAMETER_NAME WHEN '' THEN 'UNNAMED PARAMETER' WHEN NULL THEN 'UNNAMED PARAMETER' ELSE A.PARAMETER_NAME END PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, CASE A.IS_RESULT WHEN 'YES' THEN 'out' ELSE LOWER(A.PARAMETER_MODE) END PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.PARAMETERS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.SPECIFIC_CATALOG = B.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = B.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = B.SPECIFIC_NAME)
UNION
(SELECT db_name() PARENTCATALOG, A.TABLE_SCHEMA PARENTSCHEMA, A.TABLE_NAME PARENTQUERYOBJECT, A.COLUMN_NAME PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, CASE WHEN A.IS_NULLABLE = 'YES' THEN 'true' ELSE 'false' END NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, 'out' PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.TABLE_CATALOG = B.SPECIFIC_CATALOG AND A.TABLE_SCHEMA = B.SPECIFIC_SCHEMA AND A.TABLE_NAME = B.SPECIFIC_NAME)
UNION(
SELECT db_name() PARENTCATALOG, C.ROUTINE_SCHEMA PARENTSCHEMA, C.ROUTINE_NAME PARENTQUERYOBJECT, '' PARAMETERNAME, '' DATATYPE, 0 TEXTUALLENGTH, 0 NUMERICPRECISION, 0 NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, '' collationSequence, '' DESCRIPTION, -1 SIGNATUREINDEX, 'emptyArgumentListPlacholder' PARAMETERMODE, '0' OCCURS, 0 PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION
FROM INFORMATION_SCHEMA.ROUTINES C
WHERE 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A WHERE A.TABLE_CATALOG = C.ROUTINE_CATALOG AND A.TABLE_SCHEMA = C.ROUTINE_SCHEMA AND A.TABLE_NAME = C.ROUTINE_NAME)
AND 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.PARAMETERS A WHERE A.SPECIFIC_CATALOG = C.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = C.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = C.SPECIFIC_NAME))
ORDER BY PARENTSCHEMA, PARENTQUERYOBJECT, SIGNATUREINDEX, PARAMETERSEQUENCE, DATALEVEL, DATALEVELPOSITION
(SELECT db_name() PARENTCATALOG, A.SPECIFIC_SCHEMA PARENTSCHEMA, A.SPECIFIC_NAME PARENTQUERYOBJECT, CASE A.PARAMETER_NAME WHEN '' THEN 'UNNAMED PARAMETER' WHEN NULL THEN 'UNNAMED PARAMETER' ELSE A.PARAMETER_NAME END PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, CASE A.IS_RESULT WHEN 'YES' THEN 'out' ELSE LOWER(A.PARAMETER_MODE) END PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.PARAMETERS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.SPECIFIC_CATALOG = B.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = B.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = B.SPECIFIC_NAME AND B.ROUTINE_TYPE ='PROCEDURE')
UNION
(SELECT db_name() PARENTCATALOG, A.TABLE_SCHEMA PARENTSCHEMA, A.TABLE_NAME PARENTQUERYOBJECT, A.COLUMN_NAME PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, CASE WHEN A.IS_NULLABLE = 'YES' THEN 'true' ELSE 'false' END NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, 'out' PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.TABLE_CATALOG = B.SPECIFIC_CATALOG AND A.TABLE_SCHEMA = B.SPECIFIC_SCHEMA AND A.TABLE_NAME = B.SPECIFIC_NAME AND B.ROUTINE_TYPE ='PROCEDURE')
UNION(
SELECT db_name() PARENTCATALOG, C.ROUTINE_SCHEMA PARENTSCHEMA, C.ROUTINE_NAME PARENTQUERYOBJECT, '' PARAMETERNAME, '' DATATYPE, 0 TEXTUALLENGTH, 0 NUMERICPRECISION, 0 NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, '' collationSequence, '' DESCRIPTION, -1 SIGNATUREINDEX, 'emptyArgumentListPlacholder' PARAMETERMODE, '0' OCCURS, 0 PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION
FROM INFORMATION_SCHEMA.ROUTINES C
WHERE 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A WHERE A.TABLE_CATALOG = C.ROUTINE_CATALOG AND A.TABLE_SCHEMA = C.ROUTINE_SCHEMA AND A.TABLE_NAME = C.ROUTINE_NAME)
AND 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.PARAMETERS A WHERE A.SPECIFIC_CATALOG = C.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = C.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = C.SPECIFIC_NAME) AND C.ROUTINE_TYPE ='PROCEDURE')
ORDER BY PARENTSCHEMA, PARENTQUERYOBJECT, SIGNATUREINDEX, PARAMETERSEQUENCE, DATALEVEL, DATALEVELPOSITION
(SELECT db_name() PARENTCATALOG, A.SPECIFIC_SCHEMA PARENTSCHEMA, A.SPECIFIC_NAME PARENTQUERYOBJECT, CASE A.PARAMETER_NAME WHEN '' THEN 'UNNAMED PARAMETER' WHEN NULL THEN 'UNNAMED PARAMETER' ELSE A.PARAMETER_NAME END PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, CASE A.IS_RESULT WHEN 'YES' THEN 'out' ELSE LOWER(A.PARAMETER_MODE) END PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.PARAMETERS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.SPECIFIC_CATALOG = B.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = B.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = B.SPECIFIC_NAME AND B.ROUTINE_TYPE ='FUNCTION')
UNION
(SELECT db_name() PARENTCATALOG, A.TABLE_SCHEMA PARENTSCHEMA, A.TABLE_NAME PARENTQUERYOBJECT, A.COLUMN_NAME PARAMETERNAME, A.DATA_TYPE DATATYPE, A.CHARACTER_MAXIMUM_LENGTH TEXTUALLENGTH, A.NUMERIC_PRECISION NUMERICPRECISION, A.NUMERIC_SCALE NUMERICSCALE, CASE WHEN A.IS_NULLABLE = 'YES' THEN 'true' ELSE 'false' END NULLABLEFLAG, '' DEFAULTVALUE, A.COLLATION_NAME collationSequence, '' DESCRIPTION, 0 SIGNATUREINDEX, 'out' PARAMETERMODE, '0' OCCURS, A.ORDINAL_POSITION PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A, INFORMATION_SCHEMA.ROUTINES B
WHERE A.TABLE_CATALOG = B.SPECIFIC_CATALOG AND A.TABLE_SCHEMA = B.SPECIFIC_SCHEMA AND A.TABLE_NAME = B.SPECIFIC_NAME AND B.ROUTINE_TYPE ='FUNCTION')
UNION(
SELECT db_name() PARENTCATALOG, C.ROUTINE_SCHEMA PARENTSCHEMA, C.ROUTINE_NAME PARENTQUERYOBJECT, '' PARAMETERNAME, '' DATATYPE, 0 TEXTUALLENGTH, 0 NUMERICPRECISION, 0 NUMERICSCALE, 'FALSE' NULLABLEFLAG, '' DEFAULTVALUE, '' collationSequence, '' DESCRIPTION, -1 SIGNATUREINDEX, 'emptyArgumentListPlacholder' PARAMETERMODE, '0' OCCURS, 0 PARAMETERSEQUENCE, 0 DATALEVEL, 0 DATALEVELPOSITION
FROM INFORMATION_SCHEMA.ROUTINES C
WHERE 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS A WHERE A.TABLE_CATALOG = C.ROUTINE_CATALOG AND A.TABLE_SCHEMA = C.ROUTINE_SCHEMA AND A.TABLE_NAME = C.ROUTINE_NAME)
AND 0 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.PARAMETERS A WHERE A.SPECIFIC_CATALOG = C.SPECIFIC_CATALOG AND A.SPECIFIC_SCHEMA = C.SPECIFIC_SCHEMA AND A.SPECIFIC_NAME = C.SPECIFIC_NAME) AND C.ROUTINE_TYPE ='FUNCTION')
ORDER BY PARENTSCHEMA, PARENTQUERYOBJECT, SIGNATUREINDEX, PARAMETERSEQUENCE, DATALEVEL, DATALEVELPOSITION
(SELECT db_name() AS parentCatalog, A.TABLE_SCHEMA AS parentSchema, A.TABLE_NAME AS objectName
, CASE WHEN A.TABLE_TYPE ='VIEW' THEN 'V' WHEN A.TABLE_TYPE ='BASE TABLE' THEN 'T' ELSE A.TABLE_TYPE END objectType
, '' AS exteralHostRef, '' AS targetCatalog, '' AS targetSchema, '' AS targetRef, '' AS targetType, '' AS description
FROM INFORMATION_SCHEMA.TABLES A
UNION
SELECT db_name() AS parentCatalog, S.name AS parentSchema, SYN.name AS objectName, 'S' objectType
, CASE LTRIM(RTRIM(UPPER(PARSENAME(SYN.base_object_name,4))))
WHEN NULL THEN NULL
WHEN LTRIM(RTRIM(CONVERT(NVARCHAR(1024), SERVERPROPERTY('ServerName')))) THEN NULL
ELSE UPPER(PARSENAME(SYN.base_object_name,4))
END AS externalHostRef
, PARSENAME(SYN.base_object_name,3) AS targetCatalog
, PARSENAME(SYN.base_object_name,2) AS targetSchema
, PARSENAME(SYN.base_object_name,1) AS targetRef
, '' AS targetType
, '' AS description
FROM sys.synonyms SYN, sys.schemas S
WHERE SYN.schema_id = S.schema_id)
ORDER BY parentSchema, objectName
SELECT A.CATALOG_NAME objectName, '' description
FROM INFORMATION_SCHEMA.SCHEMATA A
GROUP BY A.CATALOG_NAME
ORDER BY objectName
SELECT DISTINCT A.TABLE_SCHEMA objectName, '' description
FROM INFORMATION_SCHEMA.TABLES A
WHERE A.TABLE_CATALOG = N''
GROUP BY A.TABLE_SCHEMA
ORDER BY objectName
SELECT A.TABLE_NAME objectName , '' DESCRIPTION
FROM INFORMATION_SCHEMA.TABLES A
WHERE A.TABLE_CATALOG = N''
AND A.TABLE_SCHEMA = N''
AND A.TABLE_TYPE != 'VIEW'
ORDER BY objectName
SELECT A.TABLE_NAME objectName , '' description
FROM INFORMATION_SCHEMA.TABLES A
WHERE A.TABLE_CATALOG = N''
AND A.TABLE_SCHEMA = N''
AND A.TABLE_TYPE = 'VIEW'
ORDER BY objectName
SELECT A.COLUMN_NAME objectName, '' description
FROM INFORMATION_SCHEMA.COLUMNS A
WHERE A.TABLE_CATALOG = N''
AND A.TABLE_SCHEMA = N''
AND A.TABLE_NAME = N''
ORDER BY A.ORDINAL_POSITION
SELECT distinct SYN.name AS synonymName, '' description
FROM sys.synonyms SYN, sys.database_principals P, sys.databases D, sys.schemas S
WHERE SYN.schema_id = S.schema_id
AND D.name = N''
AND S.name = N''
ORDER BY synonymName
SELECT A.ROUTINE_NAME objectName, '' description
FROM INFORMATION_SCHEMA.ROUTINES A
WHERE A.ROUTINE_CATALOG = N''
AND A.ROUTINE_SCHEMA = N''
AND A.ROUTINE_TYPE != 'FUNCTION'
ORDER BY objectName
SELECT A.ROUTINE_NAME objectName, '' description
FROM INFORMATION_SCHEMA.ROUTINES A
WHERE A.ROUTINE_CATALOG = N''
AND A.ROUTINE_SCHEMA = N''
AND A.ROUTINE_TYPE = 'FUNCTION'
ORDER BY objectName
(SELECT A.TABLE_CATALOG "parentCatalog", A.TABLE_SCHEMA "parentSchema", A.TABLE_NAME "objectName"
, CASE WHEN A.TABLE_TYPE ='VIEW' THEN 'V' WHEN A.TABLE_TYPE ='BASE TABLE' THEN 'T' ELSE A.TABLE_TYPE END "objectType"
, '' "description"
FROM INFORMATION_SCHEMA.TABLES A )
UNION
(SELECT A.ROUTINE_CATALOG "parentCatalog", A.ROUTINE_SCHEMA "parentSchema", A.ROUTINE_NAME "objectName"
, CASE ROUTINE_TYPE WHEN 'FUNCTION' THEN 'F' ELSE 'P' END PROCEDURETYPE, '' "description"
FROM INFORMATION_SCHEMA.ROUTINES A)
UNION
(SELECT D.name AS parentCatalog, S.name AS parentSchema, SYN.name AS objectName,'S' objectType, '' description
FROM sys.synonyms SYN, sys.database_principals P, sys.databases D, sys.schemas S
WHERE P.name = D.name AND SYN.schema_id = S.schema_id)
ORDER BY parentCatalog, parentSchema, objectName