Error 7391

14/02/2007 - 18:37 por Rosario | Informe spam
Hola tengo un problema al ejecutar es SP

DECLARE @nombre_tabla varchar(15), @id_calculo int

set @nombre_tabla='Cobranza'
set @id_calculo750

INSERT INTO com_referencia_doctos (
id_calculo,
docto_referencia,
tabla_referencia,
monto,
ponderacion_dias
)
SELECT
@id_calculo,
RefNbr,
@nombre_tabla,
0,
0
from
solmaster.herramientas.dbo.vmvwCobranzaVendedores
WHERE
perpost in ('200612','200611','200610') and slsperid='35'


Me marca el siguiente error:

Server: Msg 7391, Level 16, State 1, Line 8
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: No se puede dar de alta la nueva
transacción en el coordinador de transacciones especificado. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


Ya busque en internet algo y me encontré con esto:

http://support.microsoft.com/kb/873160

Y ya hice lo que indica este link y sigo igual, cabe mencionar que el
servidor al que hago referencia "linked server solmaster" esta sobre un
Win 2000 Server y aqui el servicio de Transacciones Distribuidas tiene
asignado el LOG on a la cuenta del sistema y no como Network Service,
será por aqui el error.

También cabe mencionar que esta consulta

SELECT *
from
solmaster.herramientas.dbo.vmvwCobranzaVendedores
WHERE
perpost in ('200612','200611','200610') and slsperid='35'

me devuelve los datos correctamente.

Muchas gracias por cualquier ayuda.
 

Leer las respuestas

#1 Salvador Ramos
14/02/2007 - 19:00 | Informe spam
Hola,

El nombre de tabla no se puede pasar como parámetro, si así lo necesitases
debes utilizar SQL dinámico. Te paso un link bastante interesante, te
recomiendo que lo leas antes de tomar una decisión:
http://www.hayes.ch/sql/sql_dinamico.html

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)
Y ahora también en www.sqlserverymicrosoft.net


"Rosario" escribió en el mensaje
news:
Hola tengo un problema al ejecutar es SP

DECLARE @nombre_tabla varchar(15), @id_calculo int

set @nombre_tabla='Cobranza'
set @id_calculo750

INSERT INTO com_referencia_doctos (
id_calculo,
docto_referencia,
tabla_referencia,
monto,
ponderacion_dias
)
SELECT
@id_calculo,
RefNbr,
@nombre_tabla,
0,
0
from
solmaster.herramientas.dbo.vmvwCobranzaVendedores
WHERE
perpost in ('200612','200611','200610') and slsperid='35'


Me marca el siguiente error:

Server: Msg 7391, Level 16, State 1, Line 8
The operation could not be performed because the OLE DB provider
'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: No se puede dar de alta la nueva
transacción en el coordinador de transacciones especificado. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].


Ya busque en internet algo y me encontré con esto:

http://support.microsoft.com/kb/873160

Y ya hice lo que indica este link y sigo igual, cabe mencionar que el
servidor al que hago referencia "linked server solmaster" esta sobre un
Win 2000 Server y aqui el servicio de Transacciones Distribuidas tiene
asignado el LOG on a la cuenta del sistema y no como Network Service, será
por aqui el error.

También cabe mencionar que esta consulta

SELECT *
from
solmaster.herramientas.dbo.vmvwCobranzaVendedores
WHERE
perpost in ('200612','200611','200610') and slsperid='35'

me devuelve los datos correctamente.

Muchas gracias por cualquier ayuda.

Preguntas similares