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 ...
随机推荐
- TYVJ 1014 乘法游戏
做题记录:2016-08-15 16:10:14 背景 太原成成中学第2次模拟赛 第四道 描述 乘法游戏是在一行牌上进行的.每一张牌包括了一个正整数.在每一个移动中,玩家拿出一张牌,得分是用它的数字乘 ...
- TYVJ P1088 treat Label:鞭笞人的DP
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 广东汕头聿怀初中 Train#2 Problem2 描述 给出长度为N的数列{A_i},每次可以从最左边或者最 ...
- java第一节课
1.安装 2.编写java程序 首先,新建一个文本文档:把后缀改成.java,然后起一个文件名,要是英文的,如:Hello. 然后,编辑,代码如下: class Hello { public stat ...
- android之初识Intent
首先修改values\strings.xml文件 代码如下: <resources> <string name="app_name">mytab</s ...
- IOS第七天(1:UiTableView 的基本用法)
***表格控件 #import "HMViewController.h" @interface HMViewController () <UITableViewDataSou ...
- PowerShell - Read an Excel file using COM Interface
http://www.lazywinadmin.com/2014/03/powershell-read-excel-file-using-com.html
- Jenkins学习记录
参考资料 官方文档 用MSBuild和Jenkins搭建持续集成环境(1) 用MSBuild和Jenkins搭建持续集成环境(2) 构建基于Jenkins + Github的持续集成环境 Jenkin ...
- [ZZ] Deferred Rendering and HDR
http://www.gamedev.net/topic/496785-deferred-rendering-and-hdr/ Quote: Original post by jstrohYeah I ...
- NV SDK 9.5, 10 and 11
NVIDIA SDK 10 Overview This all-new collection of DirectX 10 and OpenGL code samples teaches devel ...
- 【转载】存储scale-up和scalce-out架构
转自:存储scale-up和scalce-out架构 存储scale-up和scalce-out架构 Scale-up,即纵向扩展架构.从下面的拓扑图我们可见,纵向扩展是利用现有的存储系统,通过不断增 ...
注意: