locked
Relacionar 1 tabla con varias tablas en SQL 2000 RRS feed

  • Pregunta

  • Hola, necesito si me pueden ayudar con lo siguiente: Tengo 1 tabla y quiero relacionarla con varias tablas atravez de una misma llave.
    domingo, 13 de diciembre de 2009 4:38

Respuestas

  • No tienes más que ir creando todas las foreign keys en las tablas "hijas" relacionadas con la "principal". Por ejemplo, para relacionar dos hijas a través de la misma llave "IdPrincipal":

    CREATE TABLE Principal
    (
        IdPrincipal INT IDENTITY PRIMARY KEY,
        Campo1 VARCHAR(10),
        --etc.
    )
    
    CREATE TABLE Hija1
    (
        IdHija1 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija1FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(50),
        --etc.
    )
    
    CREATE TABLE Hija2
    (
        IdHija2 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija2 FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(100),
        --etc.
    )

    domingo, 13 de diciembre de 2009 8:52

Todas las respuestas

  • Hola, podrias darnos mas informacion? por ejemplo las DDL de las tablas.
    Poder se puede, armate una PK y luego las FK
    Maxi Accotto Consultoria en SQL Server Buenos Aires - Argentina http://blog.maxiaccotto.com
    domingo, 13 de diciembre de 2009 5:09
    Moderador
  • No tienes más que ir creando todas las foreign keys en las tablas "hijas" relacionadas con la "principal". Por ejemplo, para relacionar dos hijas a través de la misma llave "IdPrincipal":

    CREATE TABLE Principal
    (
        IdPrincipal INT IDENTITY PRIMARY KEY,
        Campo1 VARCHAR(10),
        --etc.
    )
    
    CREATE TABLE Hija1
    (
        IdHija1 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija1FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(50),
        --etc.
    )
    
    CREATE TABLE Hija2
    (
        IdHija2 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija2 FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(100),
        --etc.
    )

    domingo, 13 de diciembre de 2009 8:52
  • No tienes más que ir creando todas las foreign keys en las tablas "hijas" relacionadas con la "principal". Por ejemplo, para relacionar dos hijas a través de la misma llave "IdPrincipal":

    CREATE TABLE Principal
    (
        IdPrincipal INT IDENTITY PRIMARY KEY,
        Campo1 VARCHAR(10),
        --etc.
    )
    
    CREATE TABLE Hija1
    (
        IdHija1 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija1FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(50),
        --etc.
    )
    
    CREATE TABLE Hija2
    (
        IdHija2 INT IDENTITY PRIMARY KEY,
        IdPrincipal INT NOT NULL CONSTRAINT Fk_Hija2 FOREIGN KEY REFERENCES Principal(IdPrincipal),
        Campo1 VARCHAR(100),
        --etc.
    )
    

    Muchas gracias, era eso lo que queria saber.
    jueves, 17 de diciembre de 2009 2:27