Menu principal                 [Fechar]


SQL - Retorna as colunas chaves de uma tabela


Anterior Menu principal

Adaptado por DORNELLES, Carlos Alberto - Analista de Sistemas - Brasília DF.

Uma colaboração enviada por Vanderlei P. Carvalho
Retorna as colunas chaves de uma tabela


O SELECT abaixo mostra as colunas de uma tabela e seus atributos

      SELECT A.TBNAME  TABELA 
      ,      A.COLNO   SEQ
      ,      A.NAME    COLUNA
      ,      A.COLTYPE TIPO
      ,      '{' || SUBSTR(DIGITS(A.LENGTH), 2, 4) || ',' ||                               
             REPLACE(SUBSTR(DIGITS(A.SCALE), 5, 1),'0', ' ') || '}' TAMANHO
      ,      SUBSTR(DIGITS(VALUE(C.COLSEQ, 0)), 9, 2) KEY                                  
      FROM   SYSIBM.SYSCOLUMNS A                                               
      ,      SYSIBM.SYSINDEXES B                                               
      ,      SYSIBM.SYSKEYS    C                                                
      WHERE  A.TBNAME LIKE '%CADTB002_DEB_FOLHA%'                                    
      AND    A.TBCREATOR = 'CAD'                                                     
      AND    A.TBNAME    = B.TBNAME                                                  
      AND    A.TBCREATOR = B.TBCREATOR                                               
      AND    B.NAME      = C.IXNAME                                                  
      AND    B.CREATOR   = C.IXCREATOR                                               
      AND    A.NAME      = C.COLNAME                                                 
      ORDER  BY 6 
      


Resultado da pesquisa acima:

REPORT                                           LINE 1      POS 1      79    
                                                                              
                                                                               
                                                                               
  TABELA                 SEQ  COLUNA              TIPO      TAMANHO   KEY      
  ------------------  ------  ------------------  --------  --------  ---      
  CADTB002_DEB_FOLHA       1  NU_CONTRATO         DECIMAL   {0012, }  01       
  CADTB002_DEB_FOLHA       2  NU_VENCIMENTO       INTEGER   {0004, }  02       
                                                                               
                                                                               
*** END ***                                                                    
                                                                               
                                                                               
1=Help         2=            3=End       4=Print       5=Chart        6=Query 
7=Backward     8=Forward     9=Form     10=Left       11=Right       12=      
OK, this is the REPORT from your RUN command.                                 
COMMAND ===>                                                  SCROLL ===> PAGE


O SELECT abaixo mostra as colunas de uma tabela e seus atributos

      SELECT A.TBNAME  TABELA 
      ,      A.COLNO   SEQ
      ,      A.NAME    COLUNA
      ,      A.COLTYPE TIPO
      ,      '{' || SUBSTR(DIGITS(A.LENGTH), 2, 4) || ',' ||                               
             REPLACE(SUBSTR(DIGITS(A.SCALE), 5, 1),'0', ' ') || '}' TAMANHO
      ,      SUBSTR(DIGITS(VALUE(C.COLSEQ, 0)), 9, 2) KEY                                  
      FROM   SYSIBM.SYSCOLUMNS A                                               
      ,      SYSIBM.SYSINDEXES B                                               
      ,      SYSIBM.SYSKEYS    C                                                
      WHERE  A.TBNAME LIKE '%CADTB007_CNSLDCO%'
      AND    A.TBCREATOR = 'CAD'                                                     
      AND    A.TBNAME    = B.TBNAME                                                  
      AND    A.TBCREATOR = B.TBCREATOR                                               
      AND    B.NAME      = C.IXNAME                                                  
      AND    B.CREATOR   = C.IXCREATOR                                               
      AND    A.NAME      = C.COLNAME   
      ORDER  BY 6 
      


Resultado da pesquisa acima:

REPORT                                           LINE 1      POS 1      79    
                                                                              
                                                                                
                                                                                
   TABELA                 SEQ  COLUNA              TIPO      TAMANHO   KEY      
   ------------------  ------  ------------------  --------  --------  ---      
   CADTB007_CNSLDCO         2  DT_FINAL            DATE      {0004, }  01       
   CADTB007_CNSLDCO         3  NU_UNO              SMALLINT  {0002, }  02       
   CADTB007_CNSLDCO         5  NU_GRUPO            SMALLINT  {0002, }  03       
                                                                                
                                                                                
 *** END ***                                                                    
                                                                                
1=Help         2=            3=End       4=Print       5=Chart        6=Query 
7=Backward     8=Forward     9=Form     10=Left       11=Right       12=      
OK, FORWARD performed. Please proceed.                                        
COMMAND ===>                                                  SCROLL ===> PAGE


Início da pág. Anterior Menu principal