none
Selects com Tabelas do Sistema RRS feed

  • Pergunta

  • Boa Tarde Pessoal,

    Estou precisndo de um Result Set que traga os seguintes campos POSICAO, TABELA, CAMPO, TIPO, TAMNHO, VALOR_PADRAO, NOT_NULL e PK.

    Eu tenho o select que traz esse result set pra mim, mas eu não consigo saber se aquele campo é chave primaria ou não.

    No sql abaixo mostra o camando que executo.

    Select sc.colorder as POSICAO, so.name as TABELA, sc.name as CAMPO,
    st.name as TIPO, sc.length as TAMANHO, sm.text as VALOR_PADRAO,
    case sc.isnullable
    when 0 then '1'
    else '0' end as NOT_NULL,
    case (SELECT OBJECTPROPERTY(OBJECT_ID(so.name),'IsPrimaryKey'))
    when 1 then 'PRIMARY KEY'
    else null end as PK
    From sysobjects so
    left Join syscolumns sc On so.id = sc.id
    left Join systypes st On sc.xtype = st.xtype
    left Join syscomments sm on sc.cdefault = sm.id
    Where so.xtype = 'U' and so.name <> 'dtproperties'
    Order by so.name, sc.colorder

     

    Nota que a coluna PK so está trazendo nullo. É exatamente essa minha dificuldade, eu não estou conseguindo trazer nesse result set, se o campo é chave primaria ou não.

    Muito Obrigado.

    quarta-feira, 28 de junho de 2006 19:45

Todas as Respostas

  • Olá Eriverton,

    tente utilizar a view de sistema:

    select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE

    Se faltar algum dado, faça uma juntação com as tabelas de sistema.

    Espero ter ajudado.

     

    Everton Rodrigues
    Analista de Sistemas
    projenet@gmail.com
    Especialista, Instrutor
    e Palestrante .NET

    quinta-feira, 29 de junho de 2006 02:17