Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 26-may-2008, 15:55   #1 (permalink)
ManuelV está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 92
Script para clave foranea

Estimados,
Tengo dos tablas, una llamada producto y otra movimiento, y a traves de un script quiero darle una clave foranea a movimiento, para que no se pueda eliminar un producto que esta en la tabla movimientos

Tabla Producto
Id
Descripcion

Tabla Movimiento
Id
producto_id
Descripcion

Manuel
ManuelV está desconectado   Responder Citando
Antiguo 26-may-2008, 16:56   #2 (permalink)
flaviovich está en el buen camino
 
Avatar de flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 1.240
Enviar un mensaje por ICQ a flaviovich Enviar un mensaje por MSN a flaviovich Enviar un mensaje por Skype™ a flaviovich
Respuesta: Script para clave foranea

No se entiende lo que necesitas.
¿No sabes como crear un indice?
Código:
Sintaxis
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) 
[ WITH < index_option > [ ,...n] ] 
[ ON filegroup ]

< index_option > :: = 
    { PAD_INDEX | 
        FILLFACTOR = fillfactor | 
        IGNORE_DUP_KEY | 
        DROP_EXISTING | 
    STATISTICS_NORECOMPUTE | 
    SORT_IN_TEMPDB  
}
¿Quizas necesitas un trigger?
Por favor explica de otra forma.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
flaviovich está desconectado   Responder Citando
Antiguo 26-may-2008, 20:26   #3 (permalink)
ManuelV está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 92
Respuesta: Script para clave foranea

Necesito algo asi
(como dije antes, necesito relacionar dos tablas y para ello quiero crear una clave foranea)

ALTER TABLE [dbo].[tbl_movimiento]
WITH CHECK ADD CONSTRAINT [FK_tbl_movimiento_tbl_producto] FOREIGN KEY([producto_id])
REFERENCES [dbo].[tbl_producto] ([id])



pero me da el siguiente error:

Mens. 547, Nivel 16, Estado 0, Línea 2
Instrucción ALTER TABLE en conflicto con la restricción FOREIGN KEY "FK_tbl_movimiento_tbl_producto". El conflicto ha aparecido en la base de datos "GesCas", tabla "dbo.tbl_producto", column 'id'.
ManuelV está desconectado   Responder Citando
Antiguo 27-may-2008, 09:32   #4 (permalink)
flaviovich está en el buen camino
 
Avatar de flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 1.240
Enviar un mensaje por ICQ a flaviovich Enviar un mensaje por MSN a flaviovich Enviar un mensaje por Skype™ a flaviovich
Respuesta: Script para clave foranea

Segun veo, estas añadiendo una relacion que ya existe. Cambiale el nombre y/o verifica la que ya existe.
Cita:
ASI DEBERIAN SER LOS POSTS: Pones tu script y el mensaje de error.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
flaviovich está desconectado   Responder Citando
Antiguo 27-may-2008, 11:20   #5 (permalink)
Colaborador
Andres95 tiene algunos puntos positivos de karma
 
Avatar de Andres95
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.114
Respuesta: Script para clave foranea

Cita:
Iniciado por ManuelV Ver Mensaje

Mens. 547, Nivel 16, Estado 0, Línea 2
Instrucción ALTER TABLE en conflicto con la restricción FOREIGN KEY "FK_tbl_movimiento_tbl_producto". El conflicto ha aparecido en la base de datos "GesCas", tabla "dbo.tbl_producto", column 'id'.
haz una consulta en tu tabla tbl_moviento para obtener todos los producto_id
para verificar que efectivamente todos ellos existan en la tabla tbl_producto en el campo Id.

Si un tbl_movimiento..producto_id no existe en tbl_producto.Id, no podras crear la llave foranea, ya que es precisamente para impedir ese tipo de situaciones.

Quiza este query te pueda ayudar...
Si te regresa algun resultado, esos son los ids que debes incluir en en tbl_producto o ajustar si son invalidos en tbl_movimiento.

Código:
Select producto_id 
from  tbl_movimiento 
Where producto_id not in (Select [id] from tbl_Producto)
group by producto_id
Order by producto_id

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
Andres95 está desconectado   Responder Citando
Antiguo 09-jul-2008, 09:56   #6 (permalink)
iorisuperloco ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Respuesta: Script para clave foranea

no maches wey lo que pasa que estas declarando con diferentes nombres wey tu llave foranea por por ejemplo si tines idproducto en la tabla producto y en movimientos la llamas con el nombre de id esta no la va a reconocer cambia en references wey aqui escribe segun mi ejemplo: references producto(idproducto) y no nadamas id como lo tienes en el references
iorisuperloco está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 2 votos, 3,50 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:34.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93