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.

Preguntas similare

Leer las respuestas

#6 Rosario
14/02/2007 - 21:06 | Informe spam
Jose Mariano Alvarez escribió:
Asegurate de que los DTC esten corriendo en ambos equipos y que las cuentas
usadas sean de adecuadas para poder realizar la transaccion.
Ojo que el documento de soporte dice DTS y esta mal.debe decir DTC



Hola, efectivamente, ya los dos estan corriendo.
Respuesta Responder a este mensaje
#7 Salvador Ramos
14/02/2007 - 22:25 | Informe spam
Hola,

Como te he indicado en mi respuesta anterior, no se puede hacer lo que
indicas, ya que una tabla no se puede pasar como parámetro, no está
permitido "FROM @Tabla", por tanto tendrás que utilizar SQL dinámico, es
decir, deberás montar toda la instrucción SQL en una variable y ejecutarla
con sp_executesql:

@Tabla
@sql = 'select * from ' + @Tabla -- o la instrucción que desees
sp_executesql @sql

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:OlFPh%
Salvador Ramos escribió:
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



Que tal, gracias por el link ya lo lei, esta interesante, pero no me
resolvio mi problema, no tengo mucha experiencia en esto por eso recurro a
ustedes.

Alguna otra idea de como quitar dicho error.

Gracias.


Respuesta Responder a este mensaje
#8 Rosario
15/02/2007 - 00:11 | Informe spam
Salvador Ramos escribió:
Hola,

Como te he indicado en mi respuesta anterior, no se puede hacer lo que
indicas, ya que una tabla no se puede pasar como parámetro, no está
permitido "FROM @Tabla", por tanto tendrás que utilizar SQL dinámico, es
decir, deberás montar toda la instrucción SQL en una variable y ejecutarla
con sp_executesql:

@Tabla
@sql = 'select * from ' + @Tabla -- o la instrucción que desees
sp_executesql @sql



Hola,

Muchas gracias por tu ayuda, pero creo que no me entiendes o no te
endiendo y como ya me cansé de buscarle a esto mejor voy a dejar mi
cursor, quiza no es eficiente pero funciona.

De cualquier manera se te agradece tu ayuda y tu tiempo.

Saludos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida