none
Relacionamento herança (pai e filho) RRS feed

  • Pergunta

  • Como fazer um mesmo campo ser PK e FK no sql server 2000.

     

    tenho uma tabela de cotnratos onde entram todos os contratos e uma filha de contratos paralisados onde entram so os paralisados

    ou seja a chave primaria da tabela de cotnratos apralisados eh tb fk pra a tabela de cotnratos mas o sqls erver não deixa eu fazer isso.

    como fazer esse relacionamento de herança?

    quarta-feira, 28 de setembro de 2011 21:40

Respostas

  • Igor,

     

    Veja se é isso que voce quer:

     

    CREATE TABLE Teste2

    (

          Id INT IDENTITY(1,1) PRIMARY KEY

    )

     

    CREATE TABLE Teste

    (

          ID INT PRIMARY KEY REFERENCES Teste2(Id)

    )

     

    Pessoalmente eu nunca utilizei dessa maneira, e não sei dizer no dia a dia qual impacto pode causar, mas uma vez que é basicamente o mesmo ID e pk, não poderia simplismente colocar tudo em uma mesma tabela?


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quinta-feira, 29 de setembro de 2011 14:59
    Moderador
  • Não vejo problema no fato de sua chave primária também ser sua chave estrangeira.

    Outro meio de construir:

     

    Create Table MeuDocumento (IdDocumento int, Nome VarChar(10), 

    Constraint pk_ChavePrimaria Primary Key (IdDocumento))

     

    Create Table MeuDocumentoParalisado (IdDocumento int, Nome VarChar(10), 

    Constraint pk_ChavePrimariaParalisado Primary Key (IdDocumento),

    Constraint fk_ChaveEstrangeira        Foreign Key (IdDocumento) References MeuDocumento (IdDocumento))


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 29 de setembro de 2011 19:13

Todas as Respostas

  • Igor,

     

    Veja se é isso que voce quer:

     

    CREATE TABLE Teste2

    (

          Id INT IDENTITY(1,1) PRIMARY KEY

    )

     

    CREATE TABLE Teste

    (

          ID INT PRIMARY KEY REFERENCES Teste2(Id)

    )

     

    Pessoalmente eu nunca utilizei dessa maneira, e não sei dizer no dia a dia qual impacto pode causar, mas uma vez que é basicamente o mesmo ID e pk, não poderia simplismente colocar tudo em uma mesma tabela?


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quinta-feira, 29 de setembro de 2011 14:59
    Moderador
  • Não vejo problema no fato de sua chave primária também ser sua chave estrangeira.

    Outro meio de construir:

     

    Create Table MeuDocumento (IdDocumento int, Nome VarChar(10), 

    Constraint pk_ChavePrimaria Primary Key (IdDocumento))

     

    Create Table MeuDocumentoParalisado (IdDocumento int, Nome VarChar(10), 

    Constraint pk_ChavePrimariaParalisado Primary Key (IdDocumento),

    Constraint fk_ChaveEstrangeira        Foreign Key (IdDocumento) References MeuDocumento (IdDocumento))


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 29 de setembro de 2011 19:13