首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server在数据后插入全部空格的原因

Server在数据后插入全部空格的原因
EN

Stack Overflow用户
提问于 2019-12-16 03:46:17
回答 1查看 167关注 0票数 0

我创建了一个带有数据类型[role]列的表nvarchar(10)

然后,我插入了admin (5个字符长),但是它保存了每个值,因为admin_____每个值都得到完整的范围值10长值返回(下划线空格表示空格)。

另一列[address]nvarchar(100)类型的。插入“选择地址”后:

代码语言:javascript
复制
MGL UB str GB-building 7 floor 702 number.__________________

数据之后的空间太长了。{100 long}定义的最大全长数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-16 03:55:20

听起来可能是填充物的情况

当ANSI_PADDING是ON

Pad原始值( char列的尾随空格和二进制列的尾随零)到列的长度。

因为您特别提到了nvarchar列。与文献有关的提到(重点是我的):

SET ANSI_PADDING设置不影响nchar、nvarchar、ntext、text、image、var二进制(Max)、varchar(max)和nvarchar(max)数据类型。--它们总是在行为上显示集合ANSI_PADDING。这意味着尾随空格和零不会被修剪。

如果您不喜欢这种行为,您的两个选项是将列类型更改为varchar并关闭ANSI_PADDING:SET ANSI_PADDING OFF。如果这样做,您将需要更新所有现有记录以删除ltrim()/rtrim()填充,因为关闭填充不会影响现有记录。

另一个选项是删除应用程序级别的填充,当它从数据库中提取数据时,应用程序执行.trim()或等效的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59350308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档