详解Ansi_Padding的用法


- 警告:现存列的 ANSI_PADDING 设置为 'off'。新的列将以 ANSI_PADDING 为 'on' 的设置被创建。

  当设置为OFF时,剪裁varchar列的尾随空格和varbinary列的尾随零。该设置只影响新列的定义。

关于Ansi_Padding的用法

  当设置为ON时,不剪裁字符值中插入到varchar列的尾随空格和二进制值中插入到varbinary列的尾随零。不将值按列的长度进行填充。当设置为OFF时,剪裁varchar列的尾随空格和varbinary列的尾随零。该设置只影响新列的定义。

  SETANSI_PADDING为ON时,将允许空值的Char(n)和binary(n)列填充到列长;而当SETANSI_PADDING为OFF时,将剪裁尾随空格和零,始终将不允许空值的Char(n)和binary(n)列填充到列长。

示例代码:

SETANSI_PADDINGON  
GO  
PRINT'TestingwithANSI_PADDINGON'  
GO  
 
CREATETABLEt1  
(charcolchar(16)NULL,  
varcharcolvarchar(16)NULL,  
varbinarycolvarbinary(8))  
GO  
INSERTINTOt1VALUES('Noblanks','Noblanks',0x00ee)  
INSERTINTOt1VALUES('Trailingblank','Trailingblank',0x00ee00)  
 
SELECT'CHAR'='>'+charcol+'<','VARCHAR'='>'+varcharcol+'<',  
varbinarycol  
FROMt1  
GO  
 
SETANSI_PADDINGOFF  
GO  
PRINT'TestingwithANSI_PADDINGOFF'  
GO  
 
CREATETABLEt2  
(charcolchar(16)NULL,  
varcharcolvarchar(16)NULL,  
varbinarycolvarbinary(8))  
GO  
INSERTINTOt2VALUES('Noblanks','Noblanks',0x00ee)  
INSERTINTOt2VALUES('Trailingblank','Trailingblank',0x00ee00)  
 
SELECT'CHAR'='>'+charcol+'<','VARCHAR'='>'+varcharcol+'<',  
varbinarycol  
FROMt2  
GO  
 
DROPTABLEt1  
DROPTABLEt2  
GO

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM