Inicio > SQL Server > davidsc14 > llave pk y fk

llave pk y fk

Experto:
Usuario:
Fecha: 26/10/2009
Valoración: (4,00 sobre 5) Categoría: SQL Server
25/10/2009
danielhomy, usuario preguntando en SQL Server
Usuario
hola tengo una duda es que lo que pasa es que hice una base de datosy en una tabla tengo una pk y en otra tabla que hace referencia ala fk que hace referencia ala pk de la primera tabla cuando le pongo a la segunta tabla los datos en el campo donde va la fk, aqui esta mi dudo que se le pone si hay deve de jalar la pk de la primera tabla.
y es que lo que pasa que no me corre ya que se necesita llenar todos los catos de las estidadesespero que alguien me ayude y gracias.  
CREATE TABLE EQU_SUCUR(
ID_EQUIPO INT PRIMARY KEY NOT NULL,
ING_CARGO VARCHAR(30),
UBICACION VARCHAR(30))
INSERT INTO EQU_SUCUR VALUES(1,'MARTIN','SISTEMAS')
CREATE TABLE SUCURSALES(
ID_SUCURSAL INT PRIMARY KEY NOT NULL,
ID_EQUIPO INT FOREIGN KEY REFERENCES EQU_SUCUR(ID_EQUIPO),
SUCURSAL VARCHAR(30))
INSERT INTO SUCURSALES VALUES(1,'MERDIA')
en este gueco de la fk que se le pone o no se pone nada
25/10/2009
danielhomy, experto respondiendo en SQL Server
Experto
Haber si te entendi:
Dice que quiere llenar la segunda tabla.
Para eso primero debes tener datos en la tabla EQU_SUCUR.
Ahora la FOREIGN KEY  de la tabla SUCURSALES no va ha jalar los datos de EQU_SUCUR, lo que hace es simplemente verificar que exista el dato en la EQU_SUCUR.
ahora tu sentencia INSERT INTO SUCURSALES VALUES(1,'MERDIA')
al no espcificar los campos a los cuales desea insertar sql esta esperando que le pases en VALUES 3 valores, si solo quieres insertar 2 valores saltandote el ingreso del campo FOREING KEY deberia poner pimero que acepte valores nulos seria asi:
CREATE TABLE SUCURSALES(
ID_SUCURSAL INT PRIMARY KEY NOT NULL,
ID_EQUIPO INT NULL FOREIGN KEY REFERENCES EQU_SUCUR(ID_EQUIPO),
SUCURSAL VARCHAR(30))
ahor bien tu sentecia para insertar quedaria asi.
INSERT INTO SUCURSALES (ID_SUCURSAL, SUCURSAL) VALUES(1,'MERDIA')
Cuando no especifique los campos debes ingresar tantos valores como campos tenga tu tabla.
INSERT INTO SUCURSALES  VALUES(1, 1 , 'MERDIA')
Espero te ayude
David Silva C.
26/10/2009
danielhomy, usuario preguntando en SQL Server
Usuario
gracias por aclararme la duda si fue de mcha utilidad
Enlaces patrocinados