Advertisement
econz

Firebird - Listar Índices Duplicados

May 15th, 2015
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.99 KB | None | 0 0
  1. SELECT
  2.    A.RDB$INDEX_NAME AS INDICE_1,
  3.    B.RDB$INDEX_NAME AS INDICE_2
  4.  
  5. FROM RDB$INDICES A
  6.  
  7. INNER JOIN RDB$INDICES B ON
  8.    A.RDB$RELATION_NAME = B.RDB$RELATION_NAME AND
  9.    A.RDB$INDEX_NAME    < B.RDB$INDEX_NAME
  10.  
  11. WHERE
  12.    A.RDB$SEGMENT_COUNT = B.RDB$SEGMENT_COUNT AND
  13.    COALESCE(A.RDB$UNIQUE_FLAG, 0) = COALESCE(B.RDB$UNIQUE_FLAG, 0) AND
  14.    COALESCE(A.RDB$INDEX_TYPE,  0) = COALESCE(B.RDB$INDEX_TYPE,  0) AND
  15.    ( A.RDB$EXPRESSION_BLR=B.RDB$EXPRESSION_BLR
  16.       OR
  17.      A.RDB$SEGMENT_COUNT = ( SELECT
  18.                                 COUNT(*)
  19.                              FROM RDB$INDEX_SEGMENTS AA
  20.                              INNER JOIN RDB$INDEX_SEGMENTS BB ON
  21.                                  AA.RDB$FIELD_POSITION=BB.RDB$FIELD_POSITION AND
  22.                                  AA.RDB$FIELD_NAME=BB.RDB$FIELD_NAME AND
  23.                                  AA.RDB$INDEX_NAME=A.RDB$INDEX_NAME AND
  24.                                  BB.RDB$INDEX_NAME=B.RDB$INDEX_NAME
  25.                            )
  26.    )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement