none
Error con update de 2 tablas. RRS feed

  • Pregunta

  • Hola a todos:

    Tengo la siguiente consulta hecha el "SQLCOMPACT" y no se como arreglarla para que la tome bien.

    Simplemente se trata de actualizar en la Tabla ImportaciónDatos el campo Balance y para ello hago la unión del mismo campo que existe en la dos tablas "Cód_GC", entonces lo que preciso es que cuando compare los campos Cód_GC me llene en la tabla ImportacionDatos el campo ""balance" común  también en la dos tablas y que compare los registros cuyo Cód_GC sea igual. Pero la consulta en compact me está dando error en FROM.

    Error al analizar la consulta. [ Token line number = 1,Token line offset = 73,Token in error = FROM ]
    UPDATE ImportacionDatos SET ImportacionDatos.Balance = Balances.Balance FROM ImportacionDatos imp 
                            INNER JOIN Balances bal on imp.Cód_GC = bal.Cód_GC

    Un saludo a todos.

    Gemma


    domingo, 28 de mayo de 2017 6:13

Respuestas

  • En la edición Compact no se soporta el FROM dentro de un UPDATE. Y tampoco soporta subconsultas correlacionadas, así que no puedes sustituirlo por un WHERE con el Select.

    Si no puedes cambiarte a un SQL Server más potente (por ejemplo, LocalDB), entonces lo único que se me ocurre es que lo hagas desde código cliente ejecutando un bucle que llame al Update pasándole uno por uno cada uno de los balances. O que insertes todos los registros de nuevo y después borres los registros antiguos.

    • Marcado como respuesta gemma_campillo domingo, 28 de mayo de 2017 8:53
    domingo, 28 de mayo de 2017 6:48

Todas las respuestas

  • En la edición Compact no se soporta el FROM dentro de un UPDATE. Y tampoco soporta subconsultas correlacionadas, así que no puedes sustituirlo por un WHERE con el Select.

    Si no puedes cambiarte a un SQL Server más potente (por ejemplo, LocalDB), entonces lo único que se me ocurre es que lo hagas desde código cliente ejecutando un bucle que llame al Update pasándole uno por uno cada uno de los balances. O que insertes todos los registros de nuevo y después borres los registros antiguos.

    • Marcado como respuesta gemma_campillo domingo, 28 de mayo de 2017 8:53
    domingo, 28 de mayo de 2017 6:48
  • Hola Alberto:

    Bueno, ya lo he podido conseguir, es un poco latosa esto de la SqlCompact, pero me va muy bien porque el cliente no tiene que instalar nada, después ya le doy la posibilidad de pasarse a sqlserver express.

    He hecho una select y después un bucle con el update, va perfectamente.

    Bueno, pues como siempre muchas gracias por tu ayuda querido amigo.

    Un fuerte abrazo.

    Gemma

    domingo, 28 de mayo de 2017 8:53