none
Error al ejecutar sentencia SQL en servidor vinculado

    Pergunta

  • Hola, tengo dos servidores vinculados, uno con SQL Server 2008 R2 Standard  (Servidor 1) y otro con una SQL Server 2008 Express (Servidor 2), ejecuto sin problemas todo tipo de sentencias, transacciones distribuidas, etc de un servidor a otro, pero me estoy encontrando con lo siguiente para una sentencia en concreto, si la ejecuto en el Servidor 1 no me funciona, y me tira el servidor, para el Servidor 2 no da ningún problema, es un insert sin más, y en esa misma transacción se ejecuta como unos 10 o 12 insert exáctamente iguales...

    INSERT INTO [S106\SQLEXPRESS2008].[BDA].dbo.iPedidosLin SELECT * FROM [S106\SQLEXPRESS2008].[BDA].dbo.tmpiPedidosLin 
     

     El servidor S106\SQLEXPRESS2008 es el Servidor 2, tengo otras sentencias muy similares, como....

     
    
    INSERT INTO [S106\SQLEXPRESS2008].[InaSAM].dbo.iClientesLDir SELECT * FROM [S106\SQLEXPRESS2008].[InaSAM].dbo.tmpiClientesLDir
    
     
    INSERT INTO [S106\SQLEXPRESS2008].[InaSAM].dbo.iPedidos SELECT * FROM [S106\SQLEXPRESS2008].[InaSAM].dbo.tmpiPedidos


     INSERT INTO [S106\SQLEXPRESS2008].[BDA].dbo.iClientes SELECT * FROM [S106\SQLEXPRESS2008].[BDA].dbo.tmpiClientes
    
     
    
        
     INSERT INTO [S106\SQLEXPRESS2008].[BDA].dbo.iClientesLDir SELECT * FROM [S106\SQLEXPRESS2008].[BDA].dbo.tmpiClientesLDir
    
     
     INSERT INTO [S106\SQLEXPRESS2008].[BDA].dbo.iPedidos SELECT * FROM [S106\SQLEXPRESS2008].[BDA].dbo.tmpiPedidos

    Que funcionan correctamente, el error que sale es el siguiente...

    El proveedor OLE DB "SQLNCLI10" del servidor vinculado "S106\SQLEXPRESS2008" devolvió el mensaje "Error en el vínculo de comunicación".
    Mens. 64, Nivel 16, Estado 1, Línea 0
    Proveedor de TCP: El nombre de red especificado ya no está disponible.

    Pero porque tira el servidor....

    Gracias

    Un saludo


    • Editado Laura U quinta-feira, 31 de maio de 2012 09:08
    quinta-feira, 31 de maio de 2012 09:06

Respostas

  • ¿Qué tipo de datos tiene esa tabla? Tal vez pueda venir de ahí el problema.

    Por cierto, si lo que haces es llamar desde un servidor local a que ejecute instrucciones INSERT ... SELECT de tablas que pertenecen a dicho servidor remoto, creo que sería más eficiente que lo encapsularas dentro de un procedimiento almacenado y que lo llamaras directamente. Algo como

    USE BDA
    GO
    CREATE PROCEDURE dbo.prueba AS
    INSERT INTO dbo.iPedidosLin SELECT * FROM dbo.tmpiPedidosLin 
    GO
    

    Y luego desde tu servidor local, hacer una llamada a dicho procedimiento remoto

    EXEC [S106\SQLEXPRESS2008].[BDA].dbo.prueba

    • Sugerido como Resposta alfred_magno quinta-feira, 31 de maio de 2012 18:03
    • Marcado como Resposta Eder CostaOwner quarta-feira, 6 de junho de 2012 12:56
    quinta-feira, 31 de maio de 2012 11:20

Todas as Respostas

  • esstás segura que hay conectividad?. me refiero a que el error que da es un error de red. salvo que nos digas lo contrario, el problema seguramente ha de estar en la red.

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    quinta-feira, 31 de maio de 2012 09:53
  • Es esa sentencia la que me tira esa conexión, las tres primeras sentencias funcionan y cuando empieza con la 4 da ese error, tira el servidor....


    Laura

    quinta-feira, 31 de maio de 2012 10:50
  • ¿Qué tipo de datos tiene esa tabla? Tal vez pueda venir de ahí el problema.

    Por cierto, si lo que haces es llamar desde un servidor local a que ejecute instrucciones INSERT ... SELECT de tablas que pertenecen a dicho servidor remoto, creo que sería más eficiente que lo encapsularas dentro de un procedimiento almacenado y que lo llamaras directamente. Algo como

    USE BDA
    GO
    CREATE PROCEDURE dbo.prueba AS
    INSERT INTO dbo.iPedidosLin SELECT * FROM dbo.tmpiPedidosLin 
    GO
    

    Y luego desde tu servidor local, hacer una llamada a dicho procedimiento remoto

    EXEC [S106\SQLEXPRESS2008].[BDA].dbo.prueba

    • Sugerido como Resposta alfred_magno quinta-feira, 31 de maio de 2012 18:03
    • Marcado como Resposta Eder CostaOwner quarta-feira, 6 de junho de 2012 12:56
    quinta-feira, 31 de maio de 2012 11:20
  • Buena idea, ahora mismo lo pruebo y os digo, no obstante el error es raro raro raro...

    Gracias


    Laura

    quinta-feira, 31 de maio de 2012 11:28
  • Perfecto!, así si funciona, muchas gracias!!!, nos quedaremos sin saber cuál es el problema exacto, pero al menos ya funciona,

    Muchas gracias!!!!

    Un saludo


    Laura

    quinta-feira, 31 de maio de 2012 12:08