Principales respuestas
Insert de SP en servidor vinculado

Pregunta
-
Tengo un SP en el servidor A.
En el servidor B tengo un vinculo del servidor A.
Desde B ejecuto un SP y quisiera volcar el resultado del select de dicho SP a una tabla.
Pero me da error por las transacciones distribuidas (las cuales estan habilitadas)
No es posible hacerlo ?
Atte.
Cristian.
DBA SQL Server Santiago/Chile
Respuestas
-
Hola.
No sabemos qué hace el procedimiento almacenado, con lo que lo mejor es que persistas el resultado del procedimiento del servidor A en una tabla en el servidor A y luego vuelques esa información al servidor B. De ese modo, lo que se realice internamente en el procedimiento no será relevante a efectos de transacciones en el servidor B.
Lo que te está sucediendo es muy probable que guarde relación con operaciones de escritura que tienen lugar en el servidor A y con el MSDTC del servidor A y/o el servidor B, que es posible que no estén correctamente configurados. Desde el servidor B no puedes iniciar la transacción que se requiere para las operaciones en el servidor A.
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande- Propuesto como respuesta Miguel.Vazquez.MSDNModerator lunes, 29 de diciembre de 2014 16:01
- Marcado como respuesta Miguel.Vazquez.MSDNModerator martes, 30 de diciembre de 2014 16:48
Todas las respuestas
-
-
-
******* exec [servidorvinculado].bd.dbo.sp_test --Ejecuto el Sp que esta en servidor B
Verificar:
1) Lo que te sugiero es probar primero tu sp del server B si te retorna datos en tu server A .
2) Si es que te retorna datos correctamente con la cantidad de columnas que corresponde a tu insert debería de funcionar.
OBS: Favor vota si te es útil la información.
Saludos
BEMO- Paraguay
https://tcsystems.wordpress.c- Editado Bader Molinas miércoles, 17 de diciembre de 2014 15:53
-
Hola.
El Sp retorna valores, varios regisros, 2 columnas.
Ambas columnas son de tipo Int
Entonces en el servidor A
Create Table #Temp
(
c1 Int,
c2 int
)
Insert Into #Temp
Exec [ipvinculado].bd.dbo.Nombre_Sp
OLE DB provider "SQLNCLI10" for linked server "IP" returned message "The partner transaction manager has disabled its support for remote/network transactions.".
Mens. 7391, Nivel 16, Estado 2, Línea 1
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "IP" was unable to begin a distributed transaction.En el servidor vinculado:
Acceso a Datos True
RPC True
Salida RPC True
Atte.
Cristian.
DBA SQL Server Santiago/Chile
-
Podes probar viendo lo siguiente ...
http://stackoverflow.com/questions/7473508/unable-to-begin-a-distributed-transaction
http://support.microsoft.com/KB/329332
OBS: Favor vota si te es útil la información.
Saludos
BEMO- Paraguay
https://tcsystems.wordpress.com/
- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 18 de diciembre de 2014 22:14
-
Dices que ya los tienes habilitados tus transacciones distribuidas, de todos modos te dejo estos links para veas si algo te falto.
Las transacciones distribuidas debe estar configurado en los dos servidores tanto del A y del B.
Link: http://technet.microsoft.com/es-es/library/cc759136(WS.10).aspx. Un poco de teoría a que se refiere y que es lo que necesitas tener para configurarlo.
Link: http://msdn.microsoft.com/en-us/library/dd327979.aspx Aquí te dice como lo habilitas y los permisos para el firewall para los dos servidores para que no lo tengas que desactivar.
En la tabla de sys.configurations de sql server debe estar habilitado la opción queries distribuidos.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;Si tienes dudas, dime y con todo gusto te puedo ayudar.
Espero te ayude.
Saludos.
SQL Server, Power Builder
- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 18 de diciembre de 2014 22:14
-
-
Hola.
No sabemos qué hace el procedimiento almacenado, con lo que lo mejor es que persistas el resultado del procedimiento del servidor A en una tabla en el servidor A y luego vuelques esa información al servidor B. De ese modo, lo que se realice internamente en el procedimiento no será relevante a efectos de transacciones en el servidor B.
Lo que te está sucediendo es muy probable que guarde relación con operaciones de escritura que tienen lugar en el servidor A y con el MSDTC del servidor A y/o el servidor B, que es posible que no estén correctamente configurados. Desde el servidor B no puedes iniciar la transacción que se requiere para las operaciones en el servidor A.
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande- Propuesto como respuesta Miguel.Vazquez.MSDNModerator lunes, 29 de diciembre de 2014 16:01
- Marcado como respuesta Miguel.Vazquez.MSDNModerator martes, 30 de diciembre de 2014 16:48