【问题标题】:Error on SQL Query (UPDATE) - Error varcharSQL 查询(更新)错误 - 错误 varchar
【发布时间】:2018-11-16 23:22:59
【问题描述】:

我正在尝试在 SQL Server 上执行查询:

UPDATE Clientes
SET CodigoCanal = IdDelegacion
WHERE (CodigoEmpresa = '1')

真的很简单。只是将 A 列复制到 B 列(CodigoCanal 和 IdDelegacion)。

但它给了我这个错误: la conversion del tipo de datos varchar en datetime produjo un valor fuera del intervalo

The conversion of the varchar data type into datetime produced a value outside the range

更新: 我添加了两个列属性的图片:


第一列


第二栏

【问题讨论】:

  • 如果能提供英文的错误信息就好了..
  • 请发布Clientes 表的定义。
  • 看起来 CodigoCanal 是日期数据类型而 IdDelegacion 是 varchar,IdDelegacion 中有一个值不能隐式转换为日期
  • 嗨!这是英文消息:将 varchar 数据类型转换为 datetime 产生了一个超出@holder 范围的值
  • @AlbertSunyer,如果两列都是 varchar,则表上可能存在导致错误的更新触发器。

标签: sql sql-server


【解决方案1】:

您的列的数据提示不匹配。看起来 CordigoCanal 是 datetime 和 IdDelegacion varchar。

【讨论】:

  • 请看帖子所附的图片
【解决方案2】:

错误消息表明您在某些时候使用了日期时间数据类型。 查看 CodigoCanal 和 IdDelegacion 列的定义,它们是 varchar 类型。唯一可能具有 datetime 数据类型的列是:

  • 触发器中使用的列,如 Dan Guzman 所述
  • CodigoEmpresa 专栏(您没有在此处发布定义)

【讨论】:

    【解决方案3】:

    好的。 我检查了触发器,其中启用了 2 个。 我禁用它们,运行查询,然后再次启用;)

    感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多