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