详解Ansi_Padding的用法
- 警告:现存列的 ANSI_PADDING 设置为 'off',
详解AnsiPadding的用法
。新的列将以 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