none
Como deshabilitar el error truncado de datos para que no genere el rollback RRS feed

  • Pregunta

  • Hola,

    Como puedo deshabilitar el error de  truncado de datos para que no genere el rollback, me pasa que realizao la migracion desde un mysql al sql server, y tienen que haber unos datos mas largo o de diferente tipo en la bdd del sql server, entonces quiero que guarde igual, independiente que si se trunca. pero el sql server manda un error de ansi_warning y realizar un rollback, no guardando ningun datos en la bdd del sql server...

    jueves, 21 de diciembre de 2017 18:45

Respuestas

  • Trúncalos tú mismo antes de mandarlos a insertar. Por ejemplo, si es un campo de 20 caracteres, usa la función LEFT(dato, 20) para truncar el dato antes de insertarlo. De esa forma evitas los errores.
    jueves, 21 de diciembre de 2017 20:09
  • Como puedo deshabilitar el error de  truncado de datos... 

    Podrías configurar la directiva ANSI_WARNINGS en OFF (sólo para la acción), por ejemplo:

    - Problema

    CREATE TABLE #TempTable (Nombre varchar(5))
    INSERT INTO #TempTable VALUES ('Joseph Montana')
    DROP TABLE #TempTable
    -- Los datos de cadena o binarios se truncarían.

    - Posible solución

    SET ANSI_WARNINGS OFF;
    CREATE TABLE #TempTable (Nombre varchar(5))
    INSERT INTO #TempTable VALUES ('Joseph Montana')
    DROP TABLE #TempTable
    SET ANSI_WARNINGS ON;
    -- (1 fila afectada)

    Remarco 'Posible solución' porque debes considerar el impacto -en la migración que realizas- al desactivar las advertencias ANSI, te sugiero leas con cuidado la documentación SET ANSI_WARNINGS

    viernes, 22 de diciembre de 2017 20:17

Todas las respuestas

  • Trúncalos tú mismo antes de mandarlos a insertar. Por ejemplo, si es un campo de 20 caracteres, usa la función LEFT(dato, 20) para truncar el dato antes de insertarlo. De esa forma evitas los errores.
    jueves, 21 de diciembre de 2017 20:09
  • gracias, voy a generar la prueba...

    sl2

    jueves, 21 de diciembre de 2017 23:15
  • Como puedo deshabilitar el error de  truncado de datos... 

    Podrías configurar la directiva ANSI_WARNINGS en OFF (sólo para la acción), por ejemplo:

    - Problema

    CREATE TABLE #TempTable (Nombre varchar(5))
    INSERT INTO #TempTable VALUES ('Joseph Montana')
    DROP TABLE #TempTable
    -- Los datos de cadena o binarios se truncarían.

    - Posible solución

    SET ANSI_WARNINGS OFF;
    CREATE TABLE #TempTable (Nombre varchar(5))
    INSERT INTO #TempTable VALUES ('Joseph Montana')
    DROP TABLE #TempTable
    SET ANSI_WARNINGS ON;
    -- (1 fila afectada)

    Remarco 'Posible solución' porque debes considerar el impacto -en la migración que realizas- al desactivar las advertencias ANSI, te sugiero leas con cuidado la documentación SET ANSI_WARNINGS

    viernes, 22 de diciembre de 2017 20:17