none
Filas migradas RRS feed

  • Pregunta

  • Hola a todos. Estoy trabajando con una base de datos Sql Server 2014. Copié mediante un select into un par de columnas en una tablar auxiliar -hice esto porque necesitaba tener los datos por duplicado por precaución-, y luego desde esa tabla auxiliar les realicé un insert a la tabla definitiva. El problema de estos datos copiados desde la tabla auxiliar a la definitiva, es que si les intento hacer un update o un delete me salta el siguiente mensaje de error:

    Mens. 14875, Nivel 16, Estado 1, Línea 28
    Error en la operación DML porque habría afectado a una o más filas migradas (o aptas para la migración).
    Se terminó la instrucción.

    Cómo puedo hacer para tener acceso a estos datos sin restricción alguna?

    Muchas gracias y un saludo.

    jueves, 15 de febrero de 2018 17:41

Respuestas

  • Veamos

    INSERT INTO FacturasEmitidasPDF (Id, FicheroPDF)

    SELECT 0, TablaAux.FicheroPDF from TablaAux where TablaAux.Id = 0;

    update Tabla set Id = 1 where Id = 0;  -- No se de donde sale Tabla

    DELETE from Tabla where Id = 0; -- Si antes actualizo a 1, dudo que haga un DELETE en Tabla


    viernes, 16 de febrero de 2018 16:22

Todas las respuestas

  • ¿Nos podria mostrar como hace el INSERT o UPDATE?
    jueves, 15 de febrero de 2018 18:30
  • Son querys bastante estándar:

    declare @fich varbinary(max) = (select TablaAux.FicheroPDF from TablaAux where TablaAux.Id = 0)
    insert into FacturasEmitidasPDF (Id, FicheroPDF) values (0, @fich);update Tabla set Id = 1 where Id = 0;
    GO
    delete from Tabla where Id = 0;
    GO
    Las dos primeras querys funcionan correctamente. Cuando ejecuto la tercera -en este ejemplo delete, pero con un update ocurre exactamente lo mismo- es cuando me salta el error:

    Error en la operación DML porque habría afectado a una o más filas migradas (o aptas para la migración).

    La verdad es que he estado buscando información sobre el fallo y no he encontrado nada ...

    viernes, 16 de febrero de 2018 9:29
  • Veamos

    INSERT INTO FacturasEmitidasPDF (Id, FicheroPDF)

    SELECT 0, TablaAux.FicheroPDF from TablaAux where TablaAux.Id = 0;

    update Tabla set Id = 1 where Id = 0;  -- No se de donde sale Tabla

    DELETE from Tabla where Id = 0; -- Si antes actualizo a 1, dudo que haga un DELETE en Tabla


    viernes, 16 de febrero de 2018 16:22