H5W3
当前位置:H5W3 > 问答 > 正文

怪事!插入一条超过字段长度的记录,数据库没有报错!

版本:SQL Server 2016

–创建数据库(字段大小为3)
CREATE TABLE [dbo].[test] ([a] nvarchar(3))

–插入长度超过3的字符串,报错。
INSERT INTO test VALUES(‘1111111111’);
–[Err] 22001 – [SQL Server]String or binary data would be truncated.

–插入长度超过3的字符串 (成功插入,没报错!!!)
INSERT INTO test VALUES(‘1 ‘);

–查看数据库该记录是’1 ‘,发现长度超过3的空格被截断了。

有人知道这是什么机制?翻了官方文档没找到。

回答

可能在机制上来说,末尾空格就是直接截取不报错吧。另外需要注意的是nvarchar虽然是长度可变,但是最大长度约束是在你定义的3,超过3就错误。

本文地址:H5W3 » 怪事!插入一条超过字段长度的记录,数据库没有报错!

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址