none
importar registros RRS feed

  • Pregunta

  • Hola tengo dos conexiones abiertas en el sql server 2008 he intento hacer que una select de una de la conexiones inserte los valores en la otra conexion pero no acaba de funcionar :(
    martes, 11 de mayo de 2010 7:58

Respuestas

  • hola, efectivamente tienes que añadir Servidor1 en la lista de servidores vinculados de servidor2 o al revés, servidor2 en la lista de servidores vinculados de servidor 1. Para hacerlo en management studio vas hasta la opción Serveer objects, ahí entras en Linked Servers pulsas botón derecho, añadir servidor y añades la conexión que necesites. Después ejecutas esa instrucción.

     

    Cuentanos que tal


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    martes, 11 de mayo de 2010 8:38
    Moderador
  • Tienes que crear los servidores vinculados para que las instrucciones funcionen.

    Por ejemplo, si la instrucción la ejecutas en el "servidor1", tienes que crear el servidor vinculado "servidor2". Echa un vistazo a este tema: http://msdn.microsoft.com/es-es/library/ms188279.aspx 

    • Propuesto como respuesta Carlos Sacristan martes, 11 de mayo de 2010 8:39
    • Marcado como respuesta Tomy-Tomas martes, 11 de mayo de 2010 8:58
    martes, 11 de mayo de 2010 8:39

Todas las respuestas

  • Te refieres en el management studio?  si es así no vas por buen camino, para mover datos de un server a otro, hay varias opciones, servidores vinculados, asistentes, SSIS, si es en el mismo server puedes hacer un  select * into tabla from bbdd.esquema.tabla o un insert into tabla select * from bbdd.esquema.tabla.

     

    ¿nos das mas detalles?


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    martes, 11 de mayo de 2010 8:04
    Moderador
  • si con el studio

    yo intentava hacer algo asi haciendo las pruebas

     

    SELECT

     

    TOP 10 *

     

    FROM [servido1].[basededatos].[dbo].[tabla]

     

    SELECT TOP 10 *

     

    FROM [servido2].[basededatos].[dbo].[tabla]

     

    si no es asi como podria hacerlo??

    gracias

    martes, 11 de mayo de 2010 8:09
  • Si servidor2 lo tienes e ntu lista de servidores vinculados y la seguridad la tienes adecuadamente configurada eso funciona.

    Otra forma es situarte en management studio, en el object explorer sobre tu BBDD de origen (en servidor 2) y pulsar botón derecho, all task, export data y seguir el wizard. 

    En cualquier caso ¿servidor 2 está en la lista de servidores vinculados?


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    martes, 11 de mayo de 2010 8:27
    Moderador
  • No termino de entender lo que intentas conseguir. Esas dos instrucciones son SELECT, no hay ningún INSERT por ningún lado, por lo que no vas a poder almacenar datos en ningún caso.

    Si quieres insertar en un servidor lo que devuelve una instrucción que has puesto deberías hacer un INSERT...SELECT. Es decir, algo como

     

    INSERT [servido1].[basededatos].[dbo].[tabla] SELECT TOP 10 * FROM [servido2].[basededatos].[dbo].[tabla]

    martes, 11 de mayo de 2010 8:29
  • si esos dos selects solo eran pruebas no eran de inserccion pero esa comanda que pones tambien la he intentado hacer y no acaba de funcionar

     

    Msg 7202, Level 11, State 2, Line 1

    Could not find server 'servidor1' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.

    martes, 11 de mayo de 2010 8:34
  • hola, efectivamente tienes que añadir Servidor1 en la lista de servidores vinculados de servidor2 o al revés, servidor2 en la lista de servidores vinculados de servidor 1. Para hacerlo en management studio vas hasta la opción Serveer objects, ahí entras en Linked Servers pulsas botón derecho, añadir servidor y añades la conexión que necesites. Después ejecutas esa instrucción.

     

    Cuentanos que tal


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    martes, 11 de mayo de 2010 8:38
    Moderador
  • Tienes que crear los servidores vinculados para que las instrucciones funcionen.

    Por ejemplo, si la instrucción la ejecutas en el "servidor1", tienes que crear el servidor vinculado "servidor2". Echa un vistazo a este tema: http://msdn.microsoft.com/es-es/library/ms188279.aspx 

    • Propuesto como respuesta Carlos Sacristan martes, 11 de mayo de 2010 8:39
    • Marcado como respuesta Tomy-Tomas martes, 11 de mayo de 2010 8:58
    martes, 11 de mayo de 2010 8:39
  • Ya los he vinculado pero sigue dandome error :(

    gracias por vuestra ayuda

    OLE DB provider "SQLNCLI10" for linked server "10.220.1.110" returned message "Invalid authorization specification".

    Msg 7399, Level 16, State 1, Line 1

    The OLE DB provider "SQLNCLI10" for linked server "servidor2" reported an error. Authentication failed.

    Msg 7303, Level 16, State 1, Line 1

    Cannot initialize the data source object of OLE DB provider "SQLNCLI10" for linked server "servidor2".

    martes, 11 de mayo de 2010 8:48
  • El error que te lanza es por un tema de seguridad. Es probable que el usuario que esté intentándose autenticar en "servidor2" no tenga permisos. Revisa este enlace: http://msdn.microsoft.com/es-es/library/ms175537%28SQL.90%29.aspx
    martes, 11 de mayo de 2010 8:52
  • ya esta he canviado una cosa de seguridad :)

    muchas gracias a los dos

    martes, 11 de mayo de 2010 8:57