用户将在 SQL Server 中截断字符串或​​二进制数据

Posted

技术标签:

【中文标题】用户将在 SQL Server 中截断字符串或​​二进制数据【英文标题】:String or binary data would be truncated in SQL Server by user 【发布时间】:2017-02-24 15:58:39 【问题描述】:

在 SQL Server 中,我收到错误

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

当我使用一个用户 ID 而不是另一个 ID 运行插入语句时。

我认为该错误不会是特定于用户 ID 的,但它可能是?

有人知道用户是否可以隐藏该错误消息吗?

【问题讨论】:

列的数据类型是什么?显示您的插入语句 这取决于用于存储列的列的长度。没有表定义和示例插入,很难说更多。 你能显示更多细节吗?您尝试插入的每个字段的数据类型会很有帮助。 错误,没有。也许你应该给我们更多的线索......你的表是什么结构,(更重要的是)你想插入什么数据?这个错误有很好的记录,只是说你试图插入一个对于数据库字段来说太长的字符串/blob。 您要插入的表是否有触发器,或默认约束为SYSTEM_USER 的“CreatedUser”列(或类似列)? 【参考方案1】:

当然这是特定于插入中的数据。例如,如果一个用户的名称比您输入的字段长,而另一个用户没有,则第一个会出错,第二个不会。这就是为什么在设置表格时了解数据至关重要的原因。了解您在特定操作查询中发送的信息以便对其进行故障排除至关重要。

【讨论】:

插入语句100%相同。未插入用户名。 所以数据中唯一不同的是id?插入中没有任何其他字段不同吗?这对我来说似乎很奇怪,为什么您希望两个用户拥有相同的数据?名称只是一个例子,它可以是任何字段、电子邮件、地址等。没有你实际的插入和表结构,我不能说它是什么字段。 你是对的。这是一个“隐藏”的东西。约束将用户名插入到字段中。 你有一个表结构问题和/或应用程序问题。用户创建的用户名不应超过将要进入的任何表的字段大小。【参考方案2】:

可能是您要插入的数据大小超过了您设置的字段限制的大小。就像你应该设置一些东西(MAX)

【讨论】:

以上是关于用户将在 SQL Server 中截断字符串或​​二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

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

SQL Server (0x80131904):字符串或二进制数据将被截断 [重复]

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

Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”

sql server 2000 中文字符串被截断是怎么回事

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...