Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Agregar mas datos en una tabla

Estas en el tema de Agregar mas datos en una tabla en el foro de SQL Server en Foros del Web. Hola genios!!! estimados tengo un problema y queria ver si me pueden ayudar, tengo una tabla en mi BD de SQL que se llama Proyectos ...
  #1 (permalink)  
Antiguo 29/01/2015, 07:40
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Agregar mas datos en una tabla

Hola genios!!! estimados tengo un problema y queria ver si me pueden ayudar, tengo una tabla en mi BD de SQL que se llama Proyectos en este proyecto pueden participar desde 1 a N Proyectistas, mi pregunta es como creo la tabla en sql ???? porque por el momento puedo crear con un proyectista o dos o tres pero no puedo poner N. Me pueden ayudar muchas gracias!!!
  #2 (permalink)  
Antiguo 29/01/2015, 08:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agregar mas datos en una tabla

create table proyectos (col_name col_type)

asi la puedes crear, ahora si preguntas por la estructura de la tabla, podrias poner la estructura actual de la misma, o mejor aun poner el Diagrama Entidad Relacion de tu base de datos :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/01/2015, 08:23
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

La tabla Proyecto tiene una relacion con la tabla proyectistas de 1 a N un proyecto N proyectistas que pueden trabajar en el como creo la tabla? voy a tratar de armar el MER y te lo mando no s esi cone sto me puedes ayudar?
  #4 (permalink)  
Antiguo 29/01/2015, 12:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Agregar mas datos en una tabla

Creo que la relación es de MANY TO MANY, 1 proyectista, muchos proyectos, un proyecto, muchos proyectistas.

Crea una relación intermedia

PROYECTISTA ------> PROYA_PROYTO <-------- PROYECTOS
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 30/01/2015, 12:38
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

Cita:
Iniciado por iislas Ver Mensaje
Creo que la relación es de MANY TO MANY, 1 proyectista, muchos proyectos, un proyecto, muchos proyectistas.

Crea una relación intermedia

PROYECTISTA ------> PROYA_PROYTO <-------- PROYECTOS
Si si tienes razón es asi la relación , como hago para crear la tabla?? o sea yo creo la tabla , si en el proyecto trabaja un proyectista no hay problema pero si trabajan más como hago??
  #6 (permalink)  
Antiguo 30/01/2015, 12:51
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Agregar mas datos en una tabla

Insertas tantos registros en PROYA_PROYTO como relaciones existan entre PROYECTISTA y PROYECTOS
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 30/01/2015, 13:25
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

Cita:
Iniciado por iislas Ver Mensaje
Creo que la relación es de MANY TO MANY, 1 proyectista, muchos proyectos, un proyecto, muchos proyectistas.

Crea una relación intermedia

PROYECTISTA ------> PROYA_PROYTO <-------- PROYECTOS
Si si tienes razón es asi la relación , como hago para crear la tabla?? o sea yo creo la tabla , si en el proyecto trabaja un proyectista no hay problema pero si trabajan más como hago??

perdon mi ignorancia mi tabla es asi :
Código SQL:
Ver original
  1. CREATE TABLE PROYECTO
  2. (
  3. ID INT IDENTITY(1,1),
  4. FECHA NVARCHAR(50) NOT NULL,
  5. FECHA_INICIO NVARCHAR(50)NOT NULL,
  6. FECHA_FINAL NVARCHAR(50),
  7. TELEFONO NVARCHAR(50)NOT NULL,
  8. NOMBRE_CLIENTE NVARCHAR(50)NOT NULL,
  9. PRECIO_SIN_IMPUESTO DECIMAL NOT NULL,
  10. NUM_PRESUPUESTO NVARCHAR(50)NOT NULL,
  11. REFERENCIA NVARCHAR(50),
  12. RESPONSABLE NVARCHAR(50)NOT NULL,
  13. REVISIONES NVARCHAR(50),
  14. DURACION NVARCHAR(50),
  15. DURACION_PRESUPUESTO NVARCHAR(50),
  16.  
  17. ESTADO NVARCHAR(50)NOT NULL,
  18.  
  19. PROYECTISTA NVARCHAR (50)NOT NULL,
  20.  
  21. CONTACTO NVARCHAR(50),
  22. FOREIGN KEY (NOMBRE_CLIENTE) REFERENCES CLIENTE (NOMBRE_CLIENTE),
  23. FOREIGN KEY (PROYECTISTA) REFERENCES PROYECTISTA (NOMBRE),
  24. FOREIGN KEY(CONTACTO) REFERENCES CONTACTO (NOMBRE),
  25. FOREIGN KEY (RESPONSABLE) REFERENCES RESPONSABLE (NOMBRE),
  26. PRIMARY KEY (ID)
  27. )



Mi pregunta es si yo luego al insertar un proyecto desde C# por ejemplo agrego a más de un proyectista como hago?? porque si agrego uno no da problemas pero si agrego más me da error al querer insertar en la base de datos, no se si logro explicarme. Gracias amigo!!

Última edición por gnzsoloyo; 30/01/2015 a las 13:31
  #8 (permalink)  
Antiguo 30/01/2015, 13:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agregar mas datos en una tabla

para empezar cambia los datos de tu tabla en lugar de usar los nombres como FK mejor usa el id y te quedaria algo asi:

Código SQL:
Ver original
  1. CREATE TABLE PROYECTO
  2. (
  3. ID INT IDENTITY(1,1),
  4. FECHA NVARCHAR(50) NOT NULL,
  5. FECHA_INICIO NVARCHAR(50)NOT NULL,
  6. FECHA_FINAL NVARCHAR(50),
  7. TELEFONO NVARCHAR(50)NOT NULL,
  8. ID_CLIENTE INT NOT NULL,
  9. PRECIO_SIN_IMPUESTO DECIMAL NOT NULL,
  10. NUM_PRESUPUESTO NVARCHAR(50)NOT NULL,
  11. REFERENCIA NVARCHAR(50),
  12. ID_RESPONSABLE(50)NOT NULL,
  13. REVISIONES NVARCHAR(50),
  14. DURACION NVARCHAR(50),
  15. DURACION_PRESUPUESTO NVARCHAR(50),
  16.  
  17. ESTADO NVARCHAR(50)NOT NULL,
  18.  
  19. ID_PROYECTISTA INT NOT NULL,
  20.  
  21. ID_CONTACTO INT,
  22. FOREIGN KEY (NOMBRE_CLIENTE) REFERENCES CLIENTE (ID_CLIENTE),
  23. FOREIGN KEY (PROYECTISTA) REFERENCES PROYECTISTA (ID_PROYECTISTA),
  24. FOREIGN KEY(CONTACTO) REFERENCES CONTACTO (ID_CONTACTO),
  25. FOREIGN KEY (RESPONSABLE) REFERENCES RESPONSABLE (ID_RESPONSABLE),
  26. PRIMARY KEY (ID)
  27. )

Tedrias una tabla para la relacion Proyecto proyectisa con estos campos


Id_proyectista, id_proyecto

Y una tabla proyectista con esta info

Id_proyectista, nombre, bla bla

se entiende???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 02/02/2015, 17:32
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

Cita:
Iniciado por Libras Ver Mensaje
para empezar cambia los datos de tu tabla en lugar de usar los nombres como FK mejor usa el id y te quedaria algo asi:

Código SQL:
Ver original
  1. CREATE TABLE PROYECTO
  2. (
  3. ID INT IDENTITY(1,1),
  4. FECHA NVARCHAR(50) NOT NULL,
  5. FECHA_INICIO NVARCHAR(50)NOT NULL,
  6. FECHA_FINAL NVARCHAR(50),
  7. TELEFONO NVARCHAR(50)NOT NULL,
  8. ID_CLIENTE INT NOT NULL,
  9. PRECIO_SIN_IMPUESTO DECIMAL NOT NULL,
  10. NUM_PRESUPUESTO NVARCHAR(50)NOT NULL,
  11. REFERENCIA NVARCHAR(50),
  12. ID_RESPONSABLE(50)NOT NULL,
  13. REVISIONES NVARCHAR(50),
  14. DURACION NVARCHAR(50),
  15. DURACION_PRESUPUESTO NVARCHAR(50),
  16.  
  17. ESTADO NVARCHAR(50)NOT NULL,
  18.  
  19. ID_PROYECTISTA INT NOT NULL,
  20.  
  21. ID_CONTACTO INT,
  22. FOREIGN KEY (NOMBRE_CLIENTE) REFERENCES CLIENTE (ID_CLIENTE),
  23. FOREIGN KEY (PROYECTISTA) REFERENCES PROYECTISTA (ID_PROYECTISTA),
  24. FOREIGN KEY(CONTACTO) REFERENCES CONTACTO (ID_CONTACTO),
  25. FOREIGN KEY (RESPONSABLE) REFERENCES RESPONSABLE (ID_RESPONSABLE),
  26. PRIMARY KEY (ID)
  27. )

Tedrias una tabla para la relacion Proyecto proyectisa con estos campos


Id_proyectista, id_proyecto

Y una tabla proyectista con esta info

Id_proyectista, nombre, bla bla

se entiende???
perfectamente ahora si agrego un proyectista al proyecto todo bien, pero como hago si quiero agregar más de uno??
si si entiendo
  #10 (permalink)  
Antiguo 02/02/2015, 17:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agregar mas datos en una tabla

tu llave primaria es id_proyectista en una tabla y en la segunda es id_proyectista proyecto, por lo que puedes tener proyecto 1, proyectista 1, proyecto 1 proyectista 2 y asi sucesivamente :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 03/02/2015, 12:55
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

Perdon mi ignorancia pero sigo sin entender, al crear un proyecto y agregar un proyectista yo luego en ese mismo proyecto puedeo agregar mas proyectistas?? y cuando haga la consulta me salen todos los proyectistas??
  #12 (permalink)  
Antiguo 03/02/2015, 13:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agregar mas datos en una tabla

Hoy estoy de buenas :) asi que te lo explico con inserts y selects :)

Código SQL:
Ver original
  1. CREATE TABLE #proyectos(
  2. id INT,
  3. nombre VARCHAR(20)
  4. )
  5.  
  6. CREATE TABLE #proyecto_proyectista
  7. (
  8. id_proyecto INT,
  9. id_proyectista INT
  10. )
  11.  
  12. CREATE TABLE #proyectista(
  13. id INT,
  14. nombre VARCHAR(20)
  15. )
  16.  
  17. INSERT INTO #proyectos VALUES (1,'Proyecto 1')
  18. INSERT INTO #proyectos VALUES (2,'Proyecto 2')
  19. INSERT INTO #proyectos VALUES (3,'Proyecto 3')
  20.  
  21. INSERT INTO #proyecto_proyectista VALUES (1,1)
  22. INSERT INTO #proyecto_proyectista VALUES (1,2)
  23. INSERT INTO #proyecto_proyectista VALUES (1,3)
  24. INSERT INTO #proyecto_proyectista VALUES (2,1)
  25.  
  26. INSERT INTO #proyectista VALUES (1,'Libras')
  27. INSERT INTO #proyectista VALUES (2,'Libras2')
  28. INSERT INTO #proyectista VALUES (3,'Libras3')
  29.  
  30.  
  31. SELECT t3.* FROM #proyectos AS t1
  32. LEFT JOIN #proyecto_proyectista AS t2 ON (t1.id=t2.id_proyecto)
  33. LEFT JOIN #proyectista AS t3 ON (t2.id_proyectista=t3.id)
  34. WHERE t3.id IS NOT NULL AND t1.nombre='Proyecto 1'
  35. ---Regresa 3 proyectistas que estan en el proyecto 1 Libras1,Libras2 y Libras3
  36.  
  37.  
  38. SELECT t3.* FROM #proyectos AS t1
  39. LEFT JOIN #proyecto_proyectista AS t2 ON (t1.id=t2.id_proyecto)
  40. LEFT JOIN #proyectista AS t3 ON (t2.id_proyectista=t3.id)
  41. WHERE t3.id IS NOT NULL AND t1.nombre='Proyecto 2'
  42. --Regresa solo 1 proyectista que esta en el proyecto2 Libras1

Cabe mencionar que faltan las PK y sus respectivas FK :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 03/02/2015, 13:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Agregar mas datos en una tabla

Como siempre, el buen Libras de samaritano el los foros...
__________________
MCTS Isaias Islas
  #14 (permalink)  
Antiguo 03/02/2015, 13:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agregar mas datos en una tabla

A veces a veces mi estimado Iislas :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 03/02/2015, 15:04
 
Fecha de Ingreso: octubre-2014
Ubicación: Montevideo
Mensajes: 41
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Agregar mas datos en una tabla

Genios!!!!!!!! Genios!!!!!! Mil mil gracias por la ayuda!!!!! Son cracks!!!

Etiquetas: sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.