123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: relmd
- (C) Copyright IBM Corp. 2008, 2015
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- MS SQL Server metadata extraction rules
- -->
- <relmd:vendorRules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:relmd="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0 ../../webcontent/relmd/vendor/relmdVendorRules.xsd">
- <relmd:caseSensitivityRules relmd:storage="upper"/>
- <relmd:codePageRules relmd:value="unicode"/>
- <relmd:defaultCatalogSchemaQueryRules>
- <relmd:sql>SELECT db_name() defaultCatalog, schema_name() defaultSchema</relmd:sql>
- </relmd:defaultCatalogSchemaQueryRules>
- <relmd:catalogGranularityRules>
- <relmd:currentCatalogGetRules>
- <relmd:sql>select db_name()</relmd:sql>
- </relmd:currentCatalogGetRules>
- <relmd:currentCatalogSetRules>
- <relmd:catalogGrainSql>
- USE "<relmd:catalogSubstitution/>" select db_name()
- </relmd:catalogGrainSql>
- </relmd:currentCatalogSetRules>
- <relmd:accessibleCatalogsQueryRules>
- <relmd:javaClass relmd:qualifiedClassName="com.ibm.cognos.internal.relmd.session.query.SqlServerAccessibleCatalogsQuery"/>
- </relmd:accessibleCatalogsQueryRules>
- </relmd:catalogGranularityRules>
- <relmd:tablesImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.TABLE_TYPE ='BASE TABLE'" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:tablesImportRules>
- <relmd:viewsImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.TABLE_TYPE ='VIEW'" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:viewsImportRules>
- <relmd:columnsImportRules>
- <relmd:catalogGrainSql>
- 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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM INFORMATION_SCHEMA.COLUMNS A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME" relmd:columnExpression="A.COLUMN_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:columnsImportRules>
- <relmd:uniqueKeysImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="A.CONSTRAINT_TYPE IN ('PRIMARY KEY', 'UNIQUE')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:uniqueKeysImportRules>
- <relmd:foreignKeysImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
- <relmd:objectSelectionsCondition relmd:schemaExpression="KCU1.CONSTRAINT_SCHEMA" relmd:objectExpression="KCU1.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:foreignKeysImportRules>
- <relmd:indexesImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND T.schema_id = S.schema_id" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="S.name" relmd:objectExpression="T.name"/>
- </relmd:objectSelectionsInclusion>
- </relmd:indexesImportRules>
- <relmd:synonymsImportRules>
- <relmd:catalogGrainSql>
- 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
- </relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="SYN.schema_id = S.schema_id" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="S.name" relmd:objectExpression="SYN.name"/>
- </relmd:objectSelectionsInclusion>
- </relmd:synonymsImportRules>
- <relmd:routinesImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM INFORMATION_SCHEMA.ROUTINES A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINE_SCHEMA" relmd:objectExpression="A.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routinesImportRules>
- <relmd:proceduresImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINE_TYPE ='PROCEDURE'" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINE_SCHEMA" relmd:objectExpression="A.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:proceduresImportRules>
- <relmd:functionsImportRules>
- <relmd:catalogGrainSql>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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINE_TYPE ='FUNCTION'" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINE_SCHEMA" relmd:objectExpression="A.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionsImportRules>
- <relmd:routineArgumentsImportRules>
- <relmd:catalogGrainSql>(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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.SPECIFIC_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.SPECIFIC_SCHEMA" relmd:objectExpression="A.SPECIFIC_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.TABLE_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="A.SPECIFIC_NAME = C.SPECIFIC_NAME)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="C.ROUTINE_SCHEMA" relmd:objectExpression="C.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routineArgumentsImportRules>
- <relmd:procedureRoutineArgusImportRules>
- <relmd:catalogGrainSql>(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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.SPECIFIC_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.SPECIFIC_SCHEMA" relmd:objectExpression="A.SPECIFIC_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.TABLE_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="A.SPECIFIC_NAME = C.SPECIFIC_NAME)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="C.ROUTINE_SCHEMA" relmd:objectExpression="C.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:procedureRoutineArgusImportRules>
- <relmd:functionRoutineArgusImportRules>
- <relmd:catalogGrainSql>(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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.SPECIFIC_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.SPECIFIC_SCHEMA" relmd:objectExpression="A.SPECIFIC_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.TABLE_NAME = B.SPECIFIC_NAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="A.SPECIFIC_NAME = C.SPECIFIC_NAME)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="C.ROUTINE_SCHEMA" relmd:objectExpression="C.ROUTINE_NAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionRoutineArgusImportRules>
- <relmd:sqlObjectImportRules>
- <relmd:catalogGrainSql>(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</relmd:catalogGrainSql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM INFORMATION_SCHEMA.TABLES A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABLE_SCHEMA" relmd:objectExpression="A.TABLE_NAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="SYN.schema_id = S.schema_id" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="S.name" relmd:objectExpression="SYN.name"/>
- </relmd:objectSelectionsInclusion>
- </relmd:sqlObjectImportRules>
- <relmd:catalogsBrowseRules>
- <relmd:sql>
- SELECT A.CATALOG_NAME objectName, '' description
- FROM INFORMATION_SCHEMA.SCHEMATA A
- GROUP BY A.CATALOG_NAME
- ORDER BY objectName
- </relmd:sql>
- <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="FROM INFORMATION_SCHEMA.SCHEMATA A" relmd:insertPrefix="WHERE" relmd:objectExpression="A.CATALOG_NAME">
- <relmd:systemObject relmd:name="master"/>
- </relmd:systemObjectFilter>
- </relmd:catalogsBrowseRules>
- <relmd:schemasBrowseRules>
- <relmd:catalogGrainSql>
- SELECT DISTINCT A.TABLE_SCHEMA objectName, '' description
- FROM INFORMATION_SCHEMA.TABLES A
- WHERE A.TABLE_CATALOG = N'<relmd:catalogSubstitution/>'
- GROUP BY A.TABLE_SCHEMA
- ORDER BY objectName
- </relmd:catalogGrainSql>
- <relmd:systemObjectFilter relmd:insertLocation="before" relmd:sqlFragment="GROUP BY A.TABLE_SCHEMA" relmd:insertPrefix="AND" relmd:objectExpression="A.TABLE_SCHEMA">
- <relmd:systemObject relmd:name="sys"/>
- <relmd:systemObject relmd:name="db_securityadmin"/>
- <relmd:systemObject relmd:name="db_owner"/>
- <relmd:systemObject relmd:name="db_denydatawriter"/>
- <relmd:systemObject relmd:name="db_denydatareader"/>
- <relmd:systemObject relmd:name="db_ddladmin"/>
- <relmd:systemObject relmd:name="db_datawriter"/>
- <relmd:systemObject relmd:name="db_datareader"/>
- <relmd:systemObject relmd:name="db_backupoperator"/>
- <relmd:systemObject relmd:name="db_accessadmin"/>
- <relmd:systemObject relmd:name="INFORMATION_SCHEMA"/>
- <relmd:systemObject relmd:name="guest"/>
- </relmd:systemObjectFilter>
- </relmd:schemasBrowseRules>
- <relmd:tablesBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.TABLE_NAME objectName , '' DESCRIPTION
- FROM INFORMATION_SCHEMA.TABLES A
- WHERE A.TABLE_CATALOG = N'<relmd:catalogSubstitution/>'
- AND A.TABLE_SCHEMA = N'<relmd:schemaSubstitution/>'
- AND A.TABLE_TYPE != 'VIEW'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="AND A.TABLE_TYPE != 'VIEW'" relmd:insertPrefix="AND" relmd:objectExpression="A.TABLE_NAME">
- <relmd:systemObject relmd:name="sysconstraints"/>
- <relmd:systemObject relmd:name="syssegments"/>
- <relmd:systemObject relmd:name="dtproperties"/>
- <relmd:systemObject relmd:name="sysdiagrams"/>
- </relmd:systemObjectFilter>
- </relmd:tablesBrowseRules>
- <relmd:viewsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.TABLE_NAME objectName , '' description
- FROM INFORMATION_SCHEMA.TABLES A
- WHERE A.TABLE_CATALOG = N'<relmd:catalogSubstitution/>'
- AND A.TABLE_SCHEMA = N'<relmd:schemaSubstitution/>'
- AND A.TABLE_TYPE = 'VIEW'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:viewsBrowseRules>
- <relmd:columnsBrowseRules>
- <relmd:objectGrainSql>
- SELECT A.COLUMN_NAME objectName, '' description
- FROM INFORMATION_SCHEMA.COLUMNS A
- WHERE A.TABLE_CATALOG = N'<relmd:catalogSubstitution/>'
- AND A.TABLE_SCHEMA = N'<relmd:schemaSubstitution/>'
- AND A.TABLE_NAME = N'<relmd:objectSubstitution/>'
- ORDER BY A.ORDINAL_POSITION
- </relmd:objectGrainSql>
- </relmd:columnsBrowseRules>
- <relmd:synonymsBrowseRules>
- <relmd:schemaGrainSql>
- 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'<relmd:catalogSubstitution/>'
- AND S.name = N'<relmd:schemaSubstitution/>'
- ORDER BY synonymName
- </relmd:schemaGrainSql>
- </relmd:synonymsBrowseRules>
- <relmd:proceduresBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.ROUTINE_NAME objectName, '' description
- FROM INFORMATION_SCHEMA.ROUTINES A
- WHERE A.ROUTINE_CATALOG = N'<relmd:catalogSubstitution/>'
- AND A.ROUTINE_SCHEMA = N'<relmd:schemaSubstitution/>'
- AND A.ROUTINE_TYPE != 'FUNCTION'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="A.ROUTINE_TYPE != 'FUNCTION'" relmd:insertPrefix="AND" relmd:objectExpression="A.ROUTINE_NAME">
- <relmd:systemObject relmd:name="dt_addtosourcecontrol"/>
- <relmd:systemObject relmd:name="dt_addtosourcecontrol_u"/>
- <relmd:systemObject relmd:name="dt_adduserobject"/>
- <relmd:systemObject relmd:name="dt_adduserobject_vcs"/>
- <relmd:systemObject relmd:name="dt_checkinobject"/>
- <relmd:systemObject relmd:name="dt_checkinobject_u"/>
- <relmd:systemObject relmd:name="dt_checkoutobject"/>
- <relmd:systemObject relmd:name="dt_checkoutobject_u"/>
- <relmd:systemObject relmd:name="dt_displayoaerror"/>
- <relmd:systemObject relmd:name="dt_displayoaerror_u"/>
- <relmd:systemObject relmd:name="dt_droppropertiesbyid"/>
- <relmd:systemObject relmd:name="dt_dropuserobjectbyid"/>
- <relmd:systemObject relmd:name="dt_generateansiname"/>
- <relmd:systemObject relmd:name="dt_getobjwithprop"/>
- <relmd:systemObject relmd:name="dt_getobjwithprop_u"/>
- <relmd:systemObject relmd:name="dt_getpropertiesbyid"/>
- <relmd:systemObject relmd:name="dt_getpropertiesbyid_u"/>
- <relmd:systemObject relmd:name="dt_getpropertiesbyid_vcs"/>
- <relmd:systemObject relmd:name="dt_getpropertiesbyid_vcs_u"/>
- <relmd:systemObject relmd:name="dt_isundersourcecontrol"/>
- <relmd:systemObject relmd:name="dt_isundersourcecontrol_u"/>
- <relmd:systemObject relmd:name="dt_removefromsourcecontrol"/>
- <relmd:systemObject relmd:name="dt_setpropertybyid"/>
- <relmd:systemObject relmd:name="dt_setpropertybyid_u"/>
- <relmd:systemObject relmd:name="dt_validateloginparams"/>
- <relmd:systemObject relmd:name="dt_validateloginparams_u"/>
- <relmd:systemObject relmd:name="dt_vcsenabled"/>
- <relmd:systemObject relmd:name="dt_verstamp006"/>
- <relmd:systemObject relmd:name="dt_verstamp007"/>
- <relmd:systemObject relmd:name="dt_whocheckedout"/>
- <relmd:systemObject relmd:name="dt_whocheckedout_u"/>
- <relmd:systemObject relmd:name="sp_alterdiagram"/>
- <relmd:systemObject relmd:name="sp_creatediagram"/>
- <relmd:systemObject relmd:name="sp_dropdiagram"/>
- <relmd:systemObject relmd:name="sp_helpdiagramdefinition"/>
- <relmd:systemObject relmd:name="sp_helpdiagrams"/>
- <relmd:systemObject relmd:name="sp_renamediagram"/>
- <relmd:systemObject relmd:name="sp_upgraddiagrams"/>
- </relmd:systemObjectFilter>
- </relmd:proceduresBrowseRules>
- <relmd:functionsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.ROUTINE_NAME objectName, '' description
- FROM INFORMATION_SCHEMA.ROUTINES A
- WHERE A.ROUTINE_CATALOG = N'<relmd:catalogSubstitution/>'
- AND A.ROUTINE_SCHEMA = N'<relmd:schemaSubstitution/>'
- AND A.ROUTINE_TYPE = 'FUNCTION'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="AND A.ROUTINE_TYPE = 'FUNCTION'" relmd:insertPrefix="AND" relmd:objectExpression="A.ROUTINE_NAME">
- <relmd:systemObject relmd:name="fn_diagramobjects"/>
- </relmd:systemObjectFilter>
- </relmd:functionsBrowseRules>
- <relmd:objectListingsRules>
- <relmd:sql>(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</relmd:sql>
- </relmd:objectListingsRules>
- <relmd:driverClass relmd:className="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
- </relmd:vendorRules>
|