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

Insertar registros con procedimiento almacenado

Estas en el tema de Insertar registros con procedimiento almacenado en el foro de SQL Server en Foros del Web. Hola a todos de nuevo. He trabajado por un tiempo con un catalogo de conceptos que tiene la siguiente estructura. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código TABLA: Ver ...
  #1 (permalink)  
Antiguo 01/11/2013, 15:04
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 10 años, 11 meses
Puntos: 5
Insertar registros con procedimiento almacenado

Hola a todos de nuevo.

He trabajado por un tiempo con un catalogo de conceptos que tiene la siguiente estructura.
Código TABLA:
Ver original
  1. Codigo 1     CODIGO 2       DESCRIPCIÓN      UNIDAD        CANTIDAD
  2. CAP           CAP                CONCEPTO
  3. CAP 01        CAP                CONCEPTO           M           123
  4. CAP 01 01     CAP                CONCEPTO           M           123
BIEN TODO ESTO LO INSERTO CON UN PROCEDIMIENTO ALMACENADO QUE ES EL SIGUIENTE
Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[pa_guardar_Concepto]
  2.  @nombre_presupuesto VARCHAR(50),
  3.  @codigo_presupuesto VARCHAR(25),
  4.  @codigo_contratado VARCHAR(25),
  5.  @descripcion_presupuesto VARCHAR(MAX),
  6.  @unidad_presupuesto VARCHAR(15),
  7.  @cantidad_presupuesto VARCHAR(50),
  8.  @precio_unitario_presupuesto VARCHAR(50),
  9.  @importe_presupuesto VARCHAR(50)
  10. AS
  11. BEGIN try
  12. BEGIN tran
  13. IF (@cantidad_presupuesto = '' )
  14. BEGIN
  15. SET @cantidad_presupuesto=NULL
  16. IF (@precio_unitario_presupuesto='')
  17. BEGIN
  18. SET @precio_unitario_presupuesto =NULL
  19. IF(@importe_presupuesto ='')
  20. BEGIN
  21. SET  @importe_presupuesto =NULL
  22. END
  23. END
  24. END
  25.  
  26.  
  27. INSERT INTO  ConceptoPresu(id_presupuesto,
  28.                             codigo_presupuesto,
  29.                             codigo_presupuesto_real,
  30.                             descripcion_presupuesto,
  31.                             unidad_presupuesto,
  32.                             cantidad_presupuesto,
  33.                             precion_unitario_presupuesto,
  34.                             importe_presupuesto)
  35.                            
  36.                              VALUES(
  37.                              (SELECT id_presupuesto  FROM presupuesto WHERE nombre_presupuesto=@nombre_presupuesto   ),
  38.                             @codigo_presupuesto ,
  39.                             @codigo_contratado,
  40. @descripcion_presupuesto ,
  41. @unidad_presupuesto ,
  42. @cantidad_presupuesto ,
  43. @precio_unitario_presupuesto ,
  44. @importe_presupuesto )
  45. COMMIT
  46.  
  47.  
  48. END TRY
  49. BEGIN CATCH
  50.     ROLLBACK
  51.     PRINT error_message()
  52. END CATCH

BIEN POR CADA CONCEPTO QUE CARGA DE MI CATALOGO ENTRA UNA VES AL PROCEDIMIENTO ALMACENADO, MI PROBLEMA SURGE CUANDO QUIERO HACER REFERENCIA A SI MISMA.

EN LA ESTRUCTURA QUE PUSE ARRIBA TENGO TRES CONCEPTOS DIFERENTES
LA UNICA DIFERENCIA ESQUE EL PRIMER CONCEPTO NO TIENE DE LA UNIDAD EN ADELANTE Y LOS OTROS DOS SI ENTONCES LO QUE BUSCO ES QUE AL INSERTAR EL CONCEPTO QUE SIGUE HAGA REFERENCIA AL CONCEPTO ANTERIOR QUE NO TIENE DE LA UNIDAD EN ADELANTE.

SE PUEDE HACER??
  #2 (permalink)  
Antiguo 01/11/2013, 15:11
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: Insertar registros con procedimiento almacenado

a ver sigo sin entender tu predicamento, no puedes usar una tabla relacion padre hijo algo asi

id concepto padre
1 cap 0
2 cap 1
3 cap 2


ahora con eso puedes obtener los datos que quieres que serian cap, cap 01 y cap 01 01 usando una funcion recursiva quizas te podria servir una estructura asi....ahora lo que quieres es si tienes un cap el siguiente registro sea un cap 01??? y el siguiente un cap 01 01??? de ser asi cual es la logica para saber cual registro es el inicial??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/11/2013, 15:17
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Insertar registros con procedimiento almacenado

MI PROCEDIMIENTO LO UNICO QUE HACE ES INSERTARME DATOS QUE YO ENVIO DESDE MI APLICATIVO.

ME ENVIA REGISTRO POR REGISTRO LOS CUALES CONTIENEN ESTOS DATOS

id_presupuesto,
codigo_presupuesto,
codigo_presupuesto_real,
descripcion_presupuesto,
unidad_presupuesto,
cantidad_presupuesto,
precion_unitario_presupuesto,
importe_presupuesto

PERO EN MIS CATALOGOS HAY CONCEPTOS QUE HACEN REFERENCIA A OTROS CONCEPTOS Y QUIERO QUE ESTO SE AUTOMATICE QUE NO TENGA QUE INSERTAR PRIMERO MI CAPITULO Y LUEGO SUS SUBCAPITULOS Y LOS CONCEPTOS DE CADA SUBCAPITULO DE MANERA MANUAL.

ME IMAGINE PODER HACER UNA RELACION A LA MISMA TABLA PORQUE PUEDE HABER N CANTIDAD DE CONCEPTOS QUE HAGAN REFERENCIA A OTRO CONCEPTO DE LA MISMA TABLA.

MI PROBLEMA ESQUE COMO INSERTO REGISTRO POR REGISTRO, COMO PUEDO HACER PARA DETECTAR EL CAPITULO AL QUE PERTENCE Y LAS UNICAS DIFERENCIAS QUE TIENEN ESQUE LOS NOMBRES DE CAPITULOS NUNCA TENDRAN UNIDAD NI CANTIDAD. Y QUE EL CODIGO 1 EN EL CASO TANTO DEL CAPITULO CONO DEL CONCEPTO QUE TIENEN EMPIEZAN IGUAL PERO EL CONCEPTO TIENE EL CODIGO MAS LARGO. JEJE ESPERO HABER EXPLICADO MEJOR LA IDEA DE MI PROBLEMA.
  #4 (permalink)  
Antiguo 01/11/2013, 15:22
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: Insertar registros con procedimiento almacenado

creo que te serviria mas una funcion recursiva para obtener lo que necesitas, pero primero tienes que saber que quieres, sigo sin entenderte, a ver si te se inserta un registro cap 01 01, entonces tienes que tener en la tabla el cap y cap 01 ? cierto??? tu procedimiento lo que hace es un simple insert, lo que necesitas ocupa un poco mas de logica, puedes poner un ejemplo as completo de lo que tienes y lo que necesitas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 01/11/2013, 15:25
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Insertar registros con procedimiento almacenado

Bien puedo enviarte por correo el catalogo para que lo veas si puedo?
  #6 (permalink)  
Antiguo 01/11/2013, 15:25
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: Insertar registros con procedimiento almacenado

si envialo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 01/11/2013, 15:32
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Insertar registros con procedimiento almacenado

Listo haber si queda mas claro
  #8 (permalink)  
Antiguo 01/11/2013, 15:52
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Insertar registros con procedimiento almacenado

Si te llego??

Etiquetas: almacenado, insert, procedimiento, registros, select
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:59.