Relaciones entre tablas

21/06/2004 - 13:39 por Angel | Informe spam
Al crear una relacion entre 2 tablas me da el siguiente el error y no
consigo averiguar cual es el problema:
'Instrucción ALTER TABLE en conflicto con la restricción COLUMN FOREIGN KEY
'FK_Tabla2_Tabla1'

Tabla1 contiene el campo PK
Tabla2 contiene el campo FK

La instruccion es la siguiente:
ALTER TABLE [dbo].[Tabla2] ADD
CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
(
[ID_Tabla2]
) REFERENCES [dbo].[Tabla1] (
[ID_Tabla1]
)

no consigo averiguar porque me da ese error...

salu2!!

Preguntas similare

Leer las respuestas

#6 Javier Loria
22/06/2004 - 17:09 | Informe spam
Hola:
Si Ulises me permite, hay efectivamente hay filas en la Tabla que no
cumplen la condicion de la llave Foranea. Puedes hacer una lista de estas
filas que inclumplen la condicion con:
SELECT
FROM Tabla2
LEFT JOIN Tabla1
ON Tabla2.FK=Tabla1.PK
WHERE Tabla1.PK IS NULL
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Angel <~@hotmail.com> escribio:
estoy normalizando una BBDD y puede haber registros(pocos) en Tabla2
cuyo FK no coincida con la PK de Tabla1, te refieres a eso no?

estos registros que no estan enlazados, no podre actualizarlos?
porque no cumplen la restriccion?

es una restriccion que en realidad lo que hago es crear una relacion
entre dos tablas...y esta relacion si es necesaria...

gracias.. por los consejos pero me gustaria que me aclarases estos
puntos que te planteo...

salu2!


"ulises" escribió en el mensaje
news:1f65901c457ac$da4ac0a0$
Lo que le estas indicando con NO CHECK es que no valide
los datos existentes contra la restricción que estás
agregando, esto puede traerte problemas ya que la data no
sería consistente con el diseño y adicionalmente no podrás
actualizar los datos que no cumplen con la restricción, te
aconsejo que revises los datos y ver si es necesaria esa
restricción.

Saludos,
Ulises

comentaros que ya he averiguado porque me daba ese error:

es porque no habia puesto en la instruccion ALTER TABLA


opcion WITH NOCHECK:

ESTO ESTA MAL:
ALTER TABLE [dbo].[Tabla2] ADD
CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
(
[ID_Tabla2]
) REFERENCES [dbo].[Tabla1] (
[ID_Tabla1]
)



WITH NOCHECK -> Especifica si los datos de la tabla se


han validado o no
contra una restricción
FOREIGN KEY
DEBE SER ASI:
ALTER TABLE [dbo].[Tabla2] WITH NOCHECK ADD
CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
(
[ID_Tabla2]
) REFERENCES [dbo].[Tabla1] (
[ID_Tabla1]
)

"ulises" escribió en el


mensaje
news:1eeaa01c45792$f24052c0$
¿Cuál es la estructura de las tablas?

Saludos,
Ulises

Al crear una relacion entre 2 tablas me da el siguiente


el error y no
consigo averiguar cual es el problema:
'Instrucción ALTER TABLE en conflicto con la restricción


COLUMN FOREIGN KEY
'FK_Tabla2_Tabla1'

Tabla1 contiene el campo PK
Tabla2 contiene el campo FK

La instruccion es la siguiente:
ALTER TABLE [dbo].[Tabla2] ADD
CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
(
[ID_Tabla2]
) REFERENCES [dbo].[Tabla1] (
[ID_Tabla1]
)

no consigo averiguar porque me da ese error...

salu2!!


.





.
Respuesta Responder a este mensaje
#7 Angel
22/06/2004 - 17:24 | Informe spam
ok
muchas gracias...queria estar seguro de lo que me explicabais...

"Javier Loria" escribió en el mensaje
news:%
Hola:
Si Ulises me permite, hay efectivamente hay filas en la Tabla que no
cumplen la condicion de la llave Foranea. Puedes hacer una lista de estas
filas que inclumplen la condicion con:
> SELECT
FROM Tabla2
LEFT JOIN Tabla1
ON Tabla2.FK=Tabla1.PK
WHERE Tabla1.PK IS NULL
> Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Angel <~@hotmail.com> escribio:
> estoy normalizando una BBDD y puede haber registros(pocos) en Tabla2
> cuyo FK no coincida con la PK de Tabla1, te refieres a eso no?
>
> estos registros que no estan enlazados, no podre actualizarlos?
> porque no cumplen la restriccion?
>
> es una restriccion que en realidad lo que hago es crear una relacion
> entre dos tablas...y esta relacion si es necesaria...
>
> gracias.. por los consejos pero me gustaria que me aclarases estos
> puntos que te planteo...
>
> salu2!
>
>
> "ulises" escribió en el mensaje
> news:1f65901c457ac$da4ac0a0$
> Lo que le estas indicando con NO CHECK es que no valide
> los datos existentes contra la restricción que estás
> agregando, esto puede traerte problemas ya que la data no
> sería consistente con el diseño y adicionalmente no podrás
> actualizar los datos que no cumplen con la restricción, te
> aconsejo que revises los datos y ver si es necesaria esa
> restricción.
>
> Saludos,
> Ulises
>
>> comentaros que ya he averiguado porque me daba ese error:
>>
>> es porque no habia puesto en la instruccion ALTER TABLA
> opcion WITH NOCHECK:
>>
>> ESTO ESTA MAL:
>> ALTER TABLE [dbo].[Tabla2] ADD
>>> CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
>>> (
>>> [ID_Tabla2]
>>> ) REFERENCES [dbo].[Tabla1] (
>>> [ID_Tabla1]
>>> )
>>
>> WITH NOCHECK -> Especifica si los datos de la tabla se
> han validado o no
>> contra una restricción
>> FOREIGN KEY
>> DEBE SER ASI:
>> ALTER TABLE [dbo].[Tabla2] WITH NOCHECK ADD
>> CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
>> (
>> [ID_Tabla2]
>> ) REFERENCES [dbo].[Tabla1] (
>> [ID_Tabla1]
>> )
>>
>> "ulises" escribió en el
> mensaje
>> news:1eeaa01c45792$f24052c0$
>> ¿Cuál es la estructura de las tablas?
>>
>> Saludos,
>> Ulises
>>
>>> Al crear una relacion entre 2 tablas me da el siguiente
>> el error y no
>>> consigo averiguar cual es el problema:
>>> 'Instrucción ALTER TABLE en conflicto con la restricción
>> COLUMN FOREIGN KEY
>>> 'FK_Tabla2_Tabla1'
>>>
>>> Tabla1 contiene el campo PK
>>> Tabla2 contiene el campo FK
>>>
>>> La instruccion es la siguiente:
>>> ALTER TABLE [dbo].[Tabla2] ADD
>>> CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
>>> (
>>> [ID_Tabla2]
>>> ) REFERENCES [dbo].[Tabla1] (
>>> [ID_Tabla1]
>>> )
>>>
>>> no consigo averiguar porque me da ese error...
>>>
>>> salu2!!
>>>
>>>
>>> .
>>>
>>
>>
>> .


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida