none
Error en consulta Update RRS feed

  • Pregunta

  • Hola, estoy realizando una consulta sql muy simple a una BD SQL Server 2014 desde una aplicacion en VB6. La consulta funcionaba perfectamente en SQL Server 2005 pero desde que se ha actualiza da error.

    "La conversión del tipo de datos varchar en datetime produjo un valor fuera de intervalo"

    Esta es la consulta:

    update ResumenCliente set StatusContabilidad=0 where (NumeroFactura=630) and (EjercicioFactura=2015) and (SerieFactura='B')

    Donde los campos estan definidos en la BD como StatusContabilidad (smallint), NumeroFactura (int), EjercicioFactura (smallint) y SerieFactura (varchar(10))

    Tambien he ejecuta la consulta directamente desde SQL Server 2014 Management Studio y me da el mismo error.

    Gracias por la ayuda, un saludo.

    lunes, 21 de diciembre de 2015 18:02

Respuestas

  • Hola Tecnico MyM,

    Puedes intentar deshabilitar uno a uno los triggers para validar cual de ellos es el que genera el problema. Para desabilitar un trigger puedes hacer lo siguiente:

    /*Deshabilitar el trigger*/
    ALTER TABLE MiTabla DISABLE TRIGGER NombreTrigger;
    GO
    
    
    /*Habilitar el trigger*/
    ALTER TABLE MiTabla ENABLE TRIGGER NombreTrigger;
    GO

    • Marcado como respuesta Tecnico MyM miércoles, 23 de diciembre de 2015 10:41
    lunes, 21 de diciembre de 2015 19:36

Todas las respuestas

  • Dentro de la propia sentencia no hay ningún campo de tipo datetime que pueda dar lugar al error que estás viendo. ¿Puede ser que la tabla tenga un trigger y que el error se produzca dentro de éste?

    lunes, 21 de diciembre de 2015 18:10
  • Hola Tecnico MyM,

    ¿Estás seguro de que el problema en tu aplicación se desencadena a razón de la instrucción UPDATE que ejecutas?

    ¿Haces uso de parámetros en tu aplicación para pasar los valores?

    La pregunta va porque en lo que nos muestras no veo donde pueda haber una complicación al intentar convertir una cadena a un tipo datetime

    lunes, 21 de diciembre de 2015 18:12
  • Creo que puede haber algo de lo que comentas, efectivamente la tabla tiene definidos 3 desencadenadores que no me parece haber visto antes. Puede ser que se incorporaran en alguna actualizacion ya que la BD es de una aplicacion comercial de Sage.

    De ser asi ¿se puede evitar ejecutar algun desencadenador?

    Gracias

    lunes, 21 de diciembre de 2015 19:24
  • Tiene razon, dentro de la consulta no hay nada raro. La tabla tiene 3 desencadenadores y puede ser por este tema lo del error. Se trata de una BD de una aplicacion de Sage y no puedo modificar los desencadenadores ¿puedo evitar que se ejecuten?

    Gracias.

    lunes, 21 de diciembre de 2015 19:27
  • Hola Tecnico MyM,

    Puedes intentar deshabilitar uno a uno los triggers para validar cual de ellos es el que genera el problema. Para desabilitar un trigger puedes hacer lo siguiente:

    /*Deshabilitar el trigger*/
    ALTER TABLE MiTabla DISABLE TRIGGER NombreTrigger;
    GO
    
    
    /*Habilitar el trigger*/
    ALTER TABLE MiTabla ENABLE TRIGGER NombreTrigger;
    GO

    • Marcado como respuesta Tecnico MyM miércoles, 23 de diciembre de 2015 10:41
    lunes, 21 de diciembre de 2015 19:36
  • OK, ha funcionado perfecto.

    Muchas gracias.

    miércoles, 23 de diciembre de 2015 10:42