SQL服务器错误 - 字符串或二进制数据将被截断 - 即使SELECT语句不返回任何内容

时间:2016-06-29 10:06:19

标签: sql sql-server

我在我的固定程序中写了一个查询,比如,

INSERT INTO Table1
    (UniqueStr, Col1, Col2)
SELECT UniqueStr, Col1, Col2
    FROM Table2
WHERE ...

它给了我错误:

  

字符串或二进制数据将被截断。

以下是统计数据。

  1. Table1.UniqueStrVARCHAR(11)
  2. Table2.UniqueStrVARCHAR(20)
  3. Table2包含UniqueStr个值为11个字符且包含15个字符的记录。
  4. 查询的where子句的编写方式是SELECT语句永远不会返回UniqueStr长度大于11的记录。
  5. 第一个奇怪的情况是 - 即使SELECT语句没有返回任何内容(当单独运行时),它在与INSERT一起运行时会产生截断错误(即INSERT ... SELECT)。

    第二个奇怪的情况是 - 它仅在生产环境中提供错误。它在UAT环境中没有出错。在生产环境中,它运行了1天。

    谁能告诉我可能是什么问题?

    注意:我使用SUBSTRING函数修复了此错误,但我无法找出SQL Server出现此错误的原因?

0 个答案:

没有答案