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

#1 ulises
21/06/2004 - 15:23 | Informe spam
¿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
#2 Angel
21/06/2004 - 15:54 | Informe spam
porque quieres ver la estructura de las tablas¿? de que crees que puede ser?
las dos tablas tienen mas campos pero son texto o numericos, nada fuera de
lo comun...

Tabla1
[ID_Tabla1] [int] IDENTITY (1, 1) NOT NULL

Tabla2
[ID_Tabla2] [int] IDENTITY (1, 1) NOT NULL ,
[ID_Tabla1] [int] NOT NULL DEFAULT -1

espero que te sirva..

"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
#3 Angel
21/06/2004 - 18:09 | Informe spam
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
#4 ulises
21/06/2004 - 18:28 | Informe spam
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
#5 Angel
22/06/2004 - 10:06 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida