SQL Server 2008 R2【SET ANSI_PADDING填充属性】插入一条数据后,为何每一列都默认的在字符后多了几个空格


当加入空格后查出

解决:
导致出现这样的现象的原因就是SET ANSI_PADDING选项。
这个选项只在数据表的字符串字段被更新或者新的数据行插入到表中的时候作用。它控制着SQL Server在遇到字符串尾随空格时是否截断空格,以及是否填充空格以达到预定义的字符字段长度。
对于已经存储到表里面的字符串数据字段,是不会受影响的(前提是没有在本次被更新)。而且它也只是影响某些字符串类型,像char, varchar, binary, 和varbinary。其他的字符串类型像nchar, nvarchar, ntext, text, image, varbinary(max), varchar(max), and nvarchar(max)并不受影响,原因是它们本身是永远开启SET ANSI_PADDING为ON的。
微软是建议永远开启这个选项。
SET ANSI_PADDING { ON | OFF }
使用 char、varchar、binary 和 varbinary 数据类型定义的列有一个定义的大小。
此设置只影响新列的定义。 创建列后,SQL Server 2005 将根据创建列时的设置存储这些值。 现有的列不受以后对该设置更改的影响。
注意: |
|---|
| 建议始终将 ANSI_PADDING 设置为 ON。 |
下表显示在将值插入含有 char、varchar、binary 和 varbinary 数据类型的列时,SET ANSI_PADDING 设置的效果。
| 设置 | char(n) NOT NULL 或 binary(n) NOT NULL | char(n) NULL 或 binary(n) NULL | varchar(n) 或 varbinary(n) |
|---|---|---|---|
|
ON |
填充原始值(char 列具有尾随空格的值,binary 列具有尾随零的值),使达到列的长度。 |
如果 SET ANSI_PADDING 为 ON,则遵从与 char(n) 或 binary(n)NOT NULL 相同的规则。 |
不剪裁插入 varchar 列中的字符值的尾随空格。 不剪裁插入 varbinary 列中的二进制值的尾随零。 不将值填充到列的长度。 |
|
OFF |
填充原始值(char 列具有尾随空格的值,binary 列具有尾随零的值),使达到列的长度。 |
如果 SET ANSI_PADDING 为 OFF,则遵从与 varchar 或 varbinary 相同的规则。 |
剪裁插入 varchar 列中的字符值的尾随空格。 剪裁插入 varbinary 列中的二进制值的尾随零。 |
注意: |
|---|
| 进行填充时,char 列用空格填充,binary 列用零填充。 进行剪裁时,char 列的尾随空格被剪裁,binary 列的尾随零被剪裁。 |
如果是对计算列或索引视图创建或更改索引,则 SET ANSI_PADDING 必须为 ON。 有关计算列的索引视图和索引必需的 SET 选项设置的详细信息,请参阅 SET (Transact-SQL) 中的“使用 SET 语句时的注意事项”。
SET ANSI_PADDING 的默认值为 ON。 进行连接时,SQL Server 的 SQL Native Client ODBC 驱动程序和 SQL Native Client OLE DB 访问接口会自动将 ANSI_PADDING 设置为 ON。 这可以在 ODBC 数据源、ODBC 连接特性或 OLE DB 连接属性(它们在连接前在应用程序中设置)中进行配置。 对于来自 DB-Library 应用程序的连接,SET ANSI_PADDING 的默认设置为 OFF。
SET ANSI_PADDING 设置不影响 nchar、nvarchar、ntext、text、image 和大型值。 它们始终显示 SET ANSI_PADDING ON 行为。 这表示不剪裁尾随空格和尾随零。
如果 SET ANSI_DEFAULTS 为 ON,则启用 SET ANSI_PADDING。
SET ANSI_PADDING 的设置是在执行或运行时设置的,而不是在分析时设置的。


SQL Server 2008 R2【SET ANSI_PADDING填充属性】插入一条数据后,为何每一列都默认的在字符后多了几个空格的更多相关文章
- SQL Server 2008 R2——使用FOR XML PATH实现多条信息按指定格式在一行显示
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- SQL Server 2008 R2——学习/练习/错误/总结/搜集
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- SQL Server 2008 R2 性能计数器详细列表(三)
原文:SQL Server 2008 R2 性能计数器详细列表(三) SQL Server,Deprecated Features 对象: 监视指定为不推荐使用的功能: SQL Server Depr ...
- 利用SQL Server 2008 R2创建自动备份计划
本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...
- SQL Server 2000向SQL Server 2008 R2推送数据
[文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...
- 更改计算机名称后 导致 sql server 2008 R2 用windows账户不能附加的错误解决办法
出错背景:本人想用sql server 2008 R2 附加sql server 2005数据库出现拒绝访问,后查询网站得知,要用windows身份验证方式登录进去附加, 然后我就用windows身份 ...
- SQL Server 2008 R2数据库镜像部署
概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在 ...
- SQL Server 2008 R2 开启数据库远程连接
今天要测试一个.net系统~因为配置的数据库是SQL Server~我就不得不安装SQL Server 2008 R2~现在我们就一起来看看SQL Server 2008 R2是如何打开远程连接端口1 ...
- SQL Server 2008 R2 主从数据库同步
一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...
随机推荐
- 使用CSS 3创建不规则图形 文字围绕
前言 CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中.本篇文章的目的是为大家开启它的冰山一角.我希望这篇文章能让你对不规则图形有一个初步的了解. 现在,我们已经可以使用CSS 3 常 ...
- 12个实用的 Javascript 奇淫技巧
这里分享12个实用的 Javascript 奇淫技巧.JavaScript自1995年诞生以来已过去了16个年头,如今全世界无数的网页在依靠她完成各种关键任务,JavaScript曾在Tiobe发布的 ...
- android开发 BaseAdapter中getView()里的3个参数是什么意思
BaseAdapter适配器里有个getView()需要重写public View getView(int position,View converView,ViewGroup parent){ // ...
- 【C语言】15-预处理指令1-宏定义
预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 2 ...
- ArcEngine 获取像元值
栅格数据获取像元值, 使用ISurface.GetElevation(IPoint pnt),功能是实现了,获取的 不是像元值,是插值结果.而由于栅格数据是离散的值,每个栅格值代表了特殊的含义,插值之 ...
- MS10048依旧是Windows 2003 x86 的杀器
今天搞了个wow的游戏论坛,服务器环境是win03 x86+iis6.0+php+mysql. 提权的时候各种无奈,mysql无权限,而且没root,试了几个别的方法都不行,实在没办法的时候,用MS1 ...
- SVN的学习和安装
SVN分为服务器版本和客户端版本 服务器:VISUALSVN SERVER https://www.visualsvn.com/server/download/ 安装和配置(都很简单,只要不断的下一步 ...
- PHP显示日期、周几、农历初几、什么节日函数编程代码
<?function rili($style,$Atime){ $debug = false; $glmonth = date("n",$Atime); //1-12 ...
- 【新产品发布】EVC9001 USB 隔离器
一. 简介 EVC9001采用Analog Device 公司的基于芯片级变压器的iCoupler 磁耦合隔离方案,完成了对USB接口双向隔离功能,隔离电压达 2500V(隔离电源模块 3000V隔 ...
- PAT (Advanced Level) Practise 1003 Emergency(SPFA+DFS)
1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...
注意: