【问题标题】:String or binary data would be truncated error字符串或二进制数据将被截断错误
【发布时间】:2010-01-09 13:09:26
【问题描述】:

使用 SQL Server 2005

我有两个数据类型和数据大小相同的表,数据相同

当我执行我的查询时,我在一个表中得到了结果,当我执行另一个表时,我得到了这个错误,因为字符串或二进制数据会被截断错误,我还检查了数据类型大小。在它运行之前,我从两天开始就收到此错误。

我还检查了数据类型大小,我将数据类型修改为 256,但仍然显示错误。

如何解决这个问题。

【问题讨论】:

  • 你能告诉我们列的类型和大小,以及在它失败之前你可以插入的最大数据大小吗?尝试越来越小的尺寸,直到获得成功。

标签: sql-server


【解决方案1】:

您必须检查一切是否相同......

  • 正确的数据库?
  • 正确的架构? (例如 foo.MyTable 和 dbo.MyTable)
  • 列顺序正确吗?
  • 触发器?
  • 串联还是一些处理?
  • 正在插入相同的数据?

编辑:出于兴趣,我的清单是什么?

【讨论】:

    【解决方案2】:

    也许它与您怀疑的领域不同。

    【讨论】:

      【解决方案3】:

      如果您绝对确定没有违规数据值插入到表中,那么它一定是触发器。检查您的触发器,您会在那里找到有问题的数据点,这些数据点可能插入到一个完全不相关的表中。

      不幸的是,自从我知道该产品(大约 15 年)以来,sql server 错误消息一直是相同的。一个更好的错误消息至少显示了被冒犯的表名和列是一段时间的功能请求之一。微软尚未回复

      K.

      【讨论】:

        【解决方案4】:

        我会检查的事情:

        如果字段大小相同,则检查字段顺序,即

        table1:   Address,City,State,ZipCode
        table2:   Address,City,ZipCode,State
        

        从表二插入表一会导致错误。

        另一种可能性是查询可能会进行某种连接

        【讨论】:

          【解决方案5】:

          如果所有字段都匹配,那么表上是否存在一个触发器,该触发器还涉及一个附加表,该表定义的列太短?

          【讨论】:

            猜你喜欢
            • 2015-04-29
            • 1970-01-01
            • 2017-09-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-22
            • 1970-01-01
            相关资源
            最近更新 更多