Insertar datos en Tabla Temporal

12/07/2005 - 17:51 por Carlo Sorrel | Informe spam
Estimados, necesito su ayuda. Tengo un procedimiento almacenado que me
genera una salida, y esta la quiero insertar en una tabla temporal, pero no
me lo permite (la consulta es a un servidor Vinculado), me arroja el
siguiente error...

Servidor: mensaje 7391, nivel 16, estado 1, procedimiento
IGC_SEL_relacion_vend_zona_cd_vigente, línea 48
The operation could not be performed because the OLE DB provider 'SQLOLEDB'
was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


La sentencia es la siguiente:

create table #vendedores_zonas_cd (
fecha datetime NULL,
cod_cd integer NULL ,
nombre_cd varchar(50) NULL ,
cod_zona integer NULL ,
nombre_zona varchar(50) NULL ,
cod_superv varchar(15) NULL,
nombre_superv varchar(50) NULL,
rut_vend varchar(15) NULL,
cod_vend integer NULL ,
nombre_vend varchar(50) NULL ,
finiquitado tinyint NULL )
insert into #vendedores_zonas_cd
exec IGC_SEL_relacion_vend_zona_cd_vigente '05-07-2005', '05-07-2005', null,
null

Esto se puede hacer...???
Gracias y Saludos de antemano.

Atte.,
Carlo Sorrel

Preguntas similare

Leer las respuestas

#1 Maxi
12/07/2005 - 18:10 | Informe spam
Hola, estas usando transacciones distribuidas?


Salu2
Maxi


"Carlo Sorrel" escribió en el mensaje
news:uab$
Estimados, necesito su ayuda. Tengo un procedimiento almacenado que me
genera una salida, y esta la quiero insertar en una tabla temporal, pero
no me lo permite (la consulta es a un servidor Vinculado), me arroja el
siguiente error...

Servidor: mensaje 7391, nivel 16, estado 1, procedimiento
IGC_SEL_relacion_vend_zona_cd_vigente, línea 48
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


La sentencia es la siguiente:

create table #vendedores_zonas_cd (
fecha datetime NULL,
cod_cd integer NULL ,
nombre_cd varchar(50) NULL ,
cod_zona integer NULL ,
nombre_zona varchar(50) NULL ,
cod_superv varchar(15) NULL,
nombre_superv varchar(50) NULL,
rut_vend varchar(15) NULL,
cod_vend integer NULL ,
nombre_vend varchar(50) NULL ,
finiquitado tinyint NULL )
insert into #vendedores_zonas_cd
exec IGC_SEL_relacion_vend_zona_cd_vigente '05-07-2005', '05-07-2005',
null, null

Esto se puede hacer...???
Gracias y Saludos de antemano.

Atte.,
Carlo Sorrel

Respuesta Responder a este mensaje
#2 Carlo Sorrel
12/07/2005 - 18:12 | Informe spam
Si, Hola Maxi, tenemos el servidor vinculado..., el problema lo tengo
cuando inserto los datos resultantes de la ejecución de SP en la tabla
temporal..., e buscado información, revise la configuración de MSDTC, le
corri el dtctester de Microsoft y esta bien, lo único es que no me deja
insertar el bendito resultado en la temporal..., no se que es...
Gracias y Saludos.

Atte.,
Carlo Sorrel

"Maxi" escribió en el mensaje
news:
Hola, estas usando transacciones distribuidas?


Salu2
Maxi


"Carlo Sorrel" escribió en el mensaje
news:uab$
Estimados, necesito su ayuda. Tengo un procedimiento almacenado que me
genera una salida, y esta la quiero insertar en una tabla temporal, pero
no me lo permite (la consulta es a un servidor Vinculado), me arroja el
siguiente error...

Servidor: mensaje 7391, nivel 16, estado 1, procedimiento
IGC_SEL_relacion_vend_zona_cd_vigente, línea 48
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


La sentencia es la siguiente:

create table #vendedores_zonas_cd (
fecha datetime NULL,
cod_cd integer NULL ,
nombre_cd varchar(50) NULL ,
cod_zona integer NULL ,
nombre_zona varchar(50) NULL ,
cod_superv varchar(15) NULL,
nombre_superv varchar(50) NULL,
rut_vend varchar(15) NULL,
cod_vend integer NULL ,
nombre_vend varchar(50) NULL ,
finiquitado tinyint NULL )
insert into #vendedores_zonas_cd
exec IGC_SEL_relacion_vend_zona_cd_vigente '05-07-2005', '05-07-2005',
null, null

Esto se puede hacer...???
Gracias y Saludos de antemano.

Atte.,
Carlo Sorrel





Respuesta Responder a este mensaje
#3 Jorge Martinez
12/07/2005 - 23:25 | Informe spam
Podrias mostrarnos la linea 48 del procedimiento
IGC_SEL_relacion_vend_zona_cd_vigente

SalU2.


"Carlo Sorrel" escribió en el mensaje
news:uab$
Estimados, necesito su ayuda. Tengo un procedimiento almacenado que me
genera una salida, y esta la quiero insertar en una tabla temporal, pero


no
me lo permite (la consulta es a un servidor Vinculado), me arroja el
siguiente error...

Servidor: mensaje 7391, nivel 16, estado 1, procedimiento
IGC_SEL_relacion_vend_zona_cd_vigente, línea 48
The operation could not be performed because the OLE DB provider


'SQLOLEDB'
was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


La sentencia es la siguiente:

create table #vendedores_zonas_cd (
fecha datetime NULL,
cod_cd integer NULL ,
nombre_cd varchar(50) NULL ,
cod_zona integer NULL ,
nombre_zona varchar(50) NULL ,
cod_superv varchar(15) NULL,
nombre_superv varchar(50) NULL,
rut_vend varchar(15) NULL,
cod_vend integer NULL ,
nombre_vend varchar(50) NULL ,
finiquitado tinyint NULL )
insert into #vendedores_zonas_cd
exec IGC_SEL_relacion_vend_zona_cd_vigente '05-07-2005', '05-07-2005',


null,
null

Esto se puede hacer...???
Gracias y Saludos de antemano.

Atte.,
Carlo Sorrel


Respuesta Responder a este mensaje
#4 Carlo Sorrel
13/07/2005 - 15:26 | Informe spam
Aqui va el Procedimiento completo.
CREATE PROCEDURE dbo.IGC_SEL_relacion_vend_zona_cd_vigente ( @finicio_char
varchar(10), @ftermino_char varchar(10), @finicio_date datetime,
@ftermino_date datetime )

AS

set dateformat MDY

declare @fechaConsulta datetime, @fecha_inicio datetime, @fecha_termino
datetime

if (len(@finicio_char) > 0) and (len(@ftermino_char) > 0)
begin
set @fecha_inicio = convert(datetime, @finicio_char, 102)
set @fecha_termino = convert(datetime, @ftermino_char, 102)
end
else
begin
set @fecha_inicio = @finicio_date
set @fecha_termino = @ftermino_date
end
-
-
create table #salida (
fecha datetime NULL,
cod_cd integer NULL ,
nombre_cd varchar(50) NULL ,
cod_zona integer NULL ,
nombre_zona varchar(50) NULL ,
cod_superv varchar(15) NULL,
nombre_superv varchar(50) NULL,
rut_vend varchar(15) NULL,
cod_vend integer NULL ,
nombre_vend varchar(50) NULL ,
finiquitado tinyint NULL
)
select *
into #sgcv_vendedores
from --openrowset('SQLOLEDB', 'LANIN-SQL'; 'SGCV'; 'svcg2142','select * from
sgcv..sgcv_vendedores')
[lanin-sql].sgcv.dbo.sgcv_vendedores


select *
into #sgcv_vendedores_historico
from --openrowset('SQLOLEDB', 'LANIN-SQL'; 'SGCV'; 'svcg2142','select * from
sgcv..sgcv_vendedores_historico')
[lanin-sql].sgcv.dbo.sgcv_vendedores_historico


select *
into #sgcv_zonas
from --openrowset('SQLOLEDB', 'LANIN-SQL'; 'SGCV'; 'svcg2142','select * from
sgcv..sgcv_zonas')
[lanin-sql].sgcv.dbo.sgcv_zonas
-
-
select *
into #sgcv_zonas_historico
from --openrowset('SQLOLEDB', 'LANIN-SQL'; 'SGCV'; 'svcg2142','select * from
sgcv..sgcv_zonas_historico')
[lanin-sql].sgcv.dbo.sgcv_zonas_historico


select *
into #sgcv_cdistribucion
from --openrowset('SQLOLEDB', 'LANIN-SQL'; 'SGCV'; 'svcg2142','select * from
sgcv..sgcv_cdistribucion')
[lanin-sql].sgcv.dbo.sgcv_cdistribucion
order by id_cd

while ( @fecha_inicio <= @fecha_termino )
begin
set @fechaConsulta = dateadd(ms,-2,dateadd(day,1,@fecha_inicio))


select v.id_vendedor,
v.idv,
v.nombre,
z.id_zona,
v.finiquitado
into #vend_zona_actual
from #sgcv_vendedores v inner join
#sgcv_zonas z on v.id_zona = z.id_zona
order by v.idv
select idv,
max(fecha_modific) fecha_modific
into #cambios_vendedor
from #sgcv_vendedores_historico
where fecha_modific <= @fechaConsulta
group by idv
-
-
select b.id_vendedor,
a.idv,
b.nombre,
b.id_zona,
b.finiquitado
into #vend_zona_anterior
from #cambios_vendedor a inner join
#sgcv_vendedores_historico b on b.idv = a.idv and b.fecha_modific =
a.fecha_modific
order by a.idv
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida