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

[SOLUCIONADO] Problema con ejecucion de proc almacenado.

Estas en el tema de Problema con ejecucion de proc almacenado. en el foro de SQL Server en Foros del Web. Buenas, tengo un problema con un procedimiento almacenado distribuido. Actualmente tengo un procedimiento que realiza una serie de operaciones y se ejecuta mediante un job. ...
  #1 (permalink)  
Antiguo 13/04/2015, 11:06
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Problema con ejecucion de proc almacenado.

Buenas, tengo un problema con un procedimiento almacenado distribuido.

Actualmente tengo un procedimiento que realiza una serie de operaciones y se ejecuta mediante un job. Pero al tratar de agregar una lineas de codigo a ese procedimiento me salta un error algo extraño.

se los pongo aqui:
Cita:
del Error 28 Mensaje error La transacción actual no se puede confirmar ni admite operaciones que escriban en el archivo de registro. Revierta la transacción. Procedimiento afectado
Por lo que entiendo, esto salta cuando no "tengo habilitada la transaccion distribuida entre servidores, etc". Pero lo que pasa esque yo y a ejecuto trasacciones distribuidas en todo el procedimiento. y corre genial, el problema esta cuando agrego este codigo:
Código SQL:
Ver original
  1. UPDATE T SET existe=1
  2.             FROM UsuariosUnicos_Stage  T
  3.                 INNER JOIN
  4.                 (SELECT Id_Cartera, Id_Gestor, Fecha_Gestion
  5.                 FROM [192.168.20.100].DB_DWH_HDEC.dbo.Agr_GestionUsuarios
  6.                 GROUP BY Id_Cartera, Id_Gestor, Fecha_Gestion
  7.                 ) AS B ON T.Id_Cartera=B.Id_Cartera AND T.Id_Gestor = B.Id_Gestor AND T.Fecha_Gestion = B.Fecha_Gestion

Mi consulta anterior a esta y ejecuta genial es:

Código SQL:
Ver original
  1. UPDATE A SET A.Id_Subestado=T.Id_Subestado
  2.             FROM  UsuariosUnicos_Stage A  
  3.                 INNER JOIN [192.168.20.100].DB_DWH_HDEC.dbo.Lk_Subestado T ON(T.Cod_Subestado=A.codigo_final_cross  AND T.id_Estadogestion = A.Id_EstadoGestion)


Esto ya me sucedio antes, lo curioso esque un fin de semana lo deje y luego lo volvi a revisar y ejecutaba normal todo.. pero ahora volvió a pasar.

Alguna orientacion por favor, cual es el motivo? existe alguna configuracion o algo q me limite la cantidad de trasacciones?

Última edición por gnzsoloyo; 13/04/2015 a las 11:19
  #2 (permalink)  
Antiguo 13/04/2015, 11: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: Problema con ejecucion de proc almacenado.

y tienes habilitadas las transacciones distribuidas en tu linked server???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 13/04/2015, 11:24
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Problema con ejecucion de proc almacenado.

Cita:
Iniciado por Libras Ver Mensaje
y tienes habilitadas las transacciones distribuidas en tu linked server???
Así es amigo Libras,

es más ejecuto insert de un servidor a otro sin problemas..

ejem:

Código SQL:
Ver original
  1. INSERT INTO [192.168.20.255].DB_FORO.dbo.Agr_GestionUsuarios
  2.                              ( Id_Mes, Id_LineaNegocio, Id_Cartera, Id_Gestor,codigo_llamada, Id_GrupoHora,Id_Tipo_Estado,Id_estadoGestion,Id_SubEstado,codigo_ficha,id_estaripley, id_subestaprose,
  3.                             fecha_gestion,fecha_carga,flag_mejor_gestion,cant_clientes,cant_llamadas,cant_ventas,cant_ventas_val,monto, tiempo_hablado, tiempo_mejorllamada)
  4.                             SELECT Id_Mes, Id_LineaNegocio, Id_Cartera, Id_Gestor,codigo_llamada, Id_GrupoHora,Id_Tipo_Estado,Id_estadoGestion,Id_SubEstado,codigo_ficha,id_estaripley, id_subestaprose,
  5.                             fecha_gestion,fecha_carga,flag_mejor_gestion,cant_clientes,cant_llamadas,cant_ventas,cant_ventas_val,monto,tiempo_hablado, tiempo_hablado_llamada FROM UsuariosUnicos_Stage
  6.                             WHERE existe =0

Hago un monton de ejecuciones en el procedimiento sin problemas, el detalle esta en esa ultima q me salta el error

Cabe resaltar que yo ejecuto esa sentencia de forma manual y no tengo problemas (la consulta esta bien armada).

Es extraño e.e
  #4 (permalink)  
Antiguo 13/04/2015, 11:31
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: Problema con ejecucion de proc almacenado.

podrias poner el codigo que esta antes de esa ejecucion y el que esta despues, hay que saber exactamente en que parte esta el error......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 13/04/2015, 11:45
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Problema con ejecucion de proc almacenado.

Cita:
Iniciado por Libras Ver Mensaje
podrias poner el codigo que esta antes de esa ejecucion y el que esta despues, hay que saber exactamente en que parte esta el error......

Claro,

En resumen lo que esta antes es... :

Código SQL:
Ver original
  1. INSERT INTO [192.168.20.255].DB_.dbo.Agr_GestionUsuarios
  2.                              ( Id_Mes, Id_LineaNegocio, Id_Cartera, Id_Gestor,codigo_llamada, Id_GrupoHora,Id_Tipo_Estado,Id_estadoGestion,Id_SubEstado,codigo_ficha,id_estaripley, id_subestaprose,
  3.                             fecha_gestion,fecha_carga,flag_mejor_gestion,cant_clientes,cant_llamadas,cant_ventas,cant_ventas_val,monto, tiempo_hablado, tiempo_mejorllamada)
  4.                             SELECT Id_Mes, Id_LineaNegocio, Id_Cartera, Id_Gestor,codigo_llamada, Id_GrupoHora,Id_Tipo_Estado,Id_estadoGestion,Id_SubEstado,codigo_ficha,id_estaripley, id_subestaprose,
  5.                             fecha_gestion,fecha_carga,flag_mejor_gestion,cant_clientes,cant_llamadas,cant_ventas,cant_ventas_val,monto,tiempo_hablado, tiempo_hablado_llamada FROM UsuariosUnicos_Stage  
  6.  
  7.  
  8.  
  9.         UPDATE A SET A.Id_Estadogestion=T.Id_Estadogestion
  10.             FROM UsuariosUnicos_Stage A
  11.                 INNER JOIN [192.168.20.255].DB_.dbo.Lk_Estadogestion T ON(T.Cod_Estadogestion=A.codigo_final   )
  12.                 AND t.Id_Lineanegocio = 26
  13.        
  14.             UPDATE A SET A.Id_Subestado=T.Id_Subestado
  15.             FROM  UsuariosUnicos_Stage A  
  16.                 INNER JOIN [192.168.20.255].DB_.dbo.Lk_Subestado T ON(T.Cod_Subestado=A.codigo_final_cross  AND T.id_Estadogestion = A.Id_EstadoGestion)


Luego viene esto que genera error :
Código SQL:
Ver original
  1. UPDATE T SET existe=1
  2.             FROM UsuariosUnicos_Stage  T
  3.                 INNER JOIN
  4.                 (SELECT Id_Cartera, Id_Gestor, Fecha_Gestion
  5.                 FROM [192.168.20.255].DB_.dbo.Agr_GestionUsuarios
  6.                 GROUP BY Id_Cartera, Id_Gestor, Fecha_Gestion
  7.                 ) AS B ON T.Id_Cartera=B.Id_Cartera AND T.Id_Gestor = B.Id_Gestor AND T.Fecha_Gestion = B.Fecha_Gestion


Lo que viene esta comentado, (lo hice para detectar donde cae).
Esto:

Código SQL:
Ver original
  1. UPDATE T SET  T.Fecha_carga = B.fecha_carga, cant_clientes = B.cant_clientes, cant_llamadas = B.cant_llamadas, cant_ventas =B.cant_ventas, cant_ventas_val = B.cant_ventas_val ,
  2.                     monto = B.monto
  3.                      FROM [192.168.20.255].DB_.dbo.Agr_GestionUsuarios  T
  4.                         INNER JOIN
  5.                             (SELECT Id_Cartera, Id_Gestor,Fecha_Gestion,fecha_carga, cant_clientes,cant_llamadas, cant_ventas, cant_ventas_val,monto, tiempo_hablado
  6.                             FROM UsuariosUnicos_Stage  H
  7.                             WHERE existe = 1
  8.                             ) AS B ON  T.Id_Cartera=B.Id_Cartera AND T.Id_Gestor = B.Id_Gestor AND T.fecha_Gestion =B.fecha_Gestion


Y otras cosas más..

Cabe resaltar que todo eso funcionaba.. tal y como lo muestro... Como dije es extraño antes :/
  #6 (permalink)  
Antiguo 13/04/2015, 11:52
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: Problema con ejecucion de proc almacenado.

y cual es el error que quedo en el log de errores de sql server????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 13/04/2015, 13:06
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Problema con ejecucion de proc almacenado.

Cita:
Iniciado por Libras Ver Mensaje
y cual es el error que quedo en el log de errores de sql server????
acabo de rvisarlo y no me bota ninguno que tenga q ver con el proceso.
  #8 (permalink)  
Antiguo 14/04/2015, 08:49
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Problema con ejecucion de proc almacenado.

Despues de todo el día, decidí agregar todos los pasos restantes en otro procedimiento almacenado. Con esto no tengo problema... Aunque no quería crear otro pero buenoo... :D

Saludos,

Etiquetas: ejecucion, 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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:57.