none
Update de un linked server a otro linked server RRS feed

  • Pregunta

  • Hola buenos dias, tengo 2 servidores sql, en uno tengo el linkedServer1 que apunta hacia el segundo y a su vez este ultimo tiene un linkedServer2 hacia una base de datos access, mi  duda es la siguiente:

    Yo puedo hacer consultas de la siguiente forma:

    select * from openquery(linkedServer1,'select * from linkedServer2...Usuarios where Usuario = ''wolfteam'' ') 

    ¿Pero como podria realizar un update? Necesito actualizar el campo "cedula" de la tabla Usuario del linkedServer2 

    Probe con esto:

    select * from openquery(linkedServer1,'update linkedServer2...Usuarios set cedula = ''123'' where Usuario = ''wolfteam'' ') 

    Pero me da este error:

    Msg 7357, Level 16, State 2, Line 1
    Cannot process the object "update linkedServer2...Usuarios set cedula = '123' where Usuario = 'wolfteam' ". The OLE DB provider "SQLNCLI10" for linked server "linkedServer1" indicates that either the object has no columns or the current user does not have permissions on that object.

    miércoles, 28 de junio de 2017 14:36

Respuestas

  • Hola,

    si analizas el error:

    Msg 7357, Level 16, State 2, Line 1
    Cannot process the object "update linkedServer2...Usuarios set cedula = '123' where Usuario = 'wolfteam' ". The OLE DB provider "SQLNCLI10" for linked server "linkedServer1" indicates that either the object has no columns or the current user does not have permissions on that object.

    no te indica nada de sintaxis, si no de permisos sobre el objeto.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 28 de junio de 2017 15:36
  • Lo solucione usando

    Declare @sql VARCHAR (MAX) 

    SET @sql = 'Update....' 

    EXECUTE (@sql) AT NombreLinkedServer 

    • Marcado como respuesta Wolfteam20 viernes, 14 de julio de 2017 1:21
    viernes, 14 de julio de 2017 1:21

Todas las respuestas

  • Hola,

    Es permisos al usuario del linkserver, aquel usuario que realiza la comunicación entre ambos tienes que darle los permisos de update, en este momento solo tiene permisos de selección. 

    Permisos SQL Server

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 28 de junio de 2017 14:49
  • Hola gracias por tu respuesta.

    Entonces  ¿si es valida la sintaxis de update que use? o hay alguna mas sencilla?

    miércoles, 28 de junio de 2017 14:57
  • Hola,

    si analizas el error:

    Msg 7357, Level 16, State 2, Line 1
    Cannot process the object "update linkedServer2...Usuarios set cedula = '123' where Usuario = 'wolfteam' ". The OLE DB provider "SQLNCLI10" for linked server "linkedServer1" indicates that either the object has no columns or the current user does not have permissions on that object.

    no te indica nada de sintaxis, si no de permisos sobre el objeto.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 28 de junio de 2017 15:36
  • Ok, por cierto olvide mencionar que donde esta el linkedServer2 es sql server 2000. Como pudiera concederle permisos ahi?

    miércoles, 28 de junio de 2017 20:48
  • Lo solucione usando

    Declare @sql VARCHAR (MAX) 

    SET @sql = 'Update....' 

    EXECUTE (@sql) AT NombreLinkedServer 

    • Marcado como respuesta Wolfteam20 viernes, 14 de julio de 2017 1:21
    viernes, 14 de julio de 2017 1:21