none
¿Conectar Llave foránea simple a llave primaria compuesta en SQL SERVER 2012? RRS feed

  • Pregunta

  • Me sale este error

    Mens. 1776, Nivel 16, Estado 0, Línea 1
    No hay claves principales ni candidatas en la tabla a la que se hace referencia ('vuel') que concuerden con la lista de columnas que hace la referencia en la clave externa 'FK__OCUPACION__Id_as__6B24EA82'.
    Mens. 1750, Nivel 16, Estado 1, Línea 1
    No se pudo crear la restricción o el índice. Vea los errores anteriores.

    domingo, 17 de junio de 2018 3:42

Todas las respuestas

  • Hola Manolo8;

    Si estas intentando crear una Foreign Key, la sintaxis en Sql server es la siguiente

    Alter Table TablaAEnlazar
    Add Constraint fk_nombreQueVaATener FOREIGN KEY([campodeMiTablaQueEnlazaConDestino])
    REFERENCES [TablaDestino] ([CampoDestino])
    ON UPDATE CASCADE /* si se modifican el identificado que enlaza en destino se modifican los de origen */
    ON DELETE CASCADE /* lo mismo pero con borrados */
    GO
    

    Documento Oficial

    Un saludo

    domingo, 17 de junio de 2018 5:01
  • Las claves foráneas necesitan índices únicos en la tabla que contiene las claves primarias.  Como según leo la clave primaria es compuesta, la clave foránea necesita una cantidad igual de campos que la clave primaria.  Pero bueno, en el raro caso de que la clave primaria sea compuesta en la tabla a referenciar pero por alguna razón uno de sus campos tiene la capacidad por sí mismo de contener valores únicos, puede agregar un índice único a dicho campo y ya entonces podrá hacer lo que quiere:  Clave foránea de un único campo referenciando un único campo de la clave primaria en la tabla referenciada.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    domingo, 17 de junio de 2018 7:39