下面的这个ANSI_PADDING关键字用在什么地方(它有什么作用)呢?
SET ANSI_PADDING OFF//什么意思呢?

解决方案 »

  1.   

    SET ANSI_PADDING:针对小于定义的列大小的值以及 char、varchar、binary 和 varbinary 数据中有尾随空格的值,此语句可以控制存储此类值的方式。SET ANSI_PADDING OFF:
    填充原始值(char 列具有尾随空格的值,binary 列具有尾随零的值),使达到列的长度。
    剪裁插入 varchar 列中的字符值的尾随空格。剪裁插入 varbinary 列中的二进制值的尾随零。
      

  2.   


    PRINT 'Testing with ANSI_PADDING ON'
    SET ANSI_PADDING ON;
    GOCREATE TABLE t1 (
       charcol CHAR(16) NULL, 
       varcharcol VARCHAR(16) NULL, 
       varbinarycol VARBINARY(8)
    );
    GO
    INSERT INTO t1 VALUES ('No blanks', 'No blanks', 0x00ee);
    INSERT INTO t1 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);SELECT 'CHAR' = '>' + charcol + '<', 'VARCHAR'='>' + varcharcol + '<',
       varbinarycol
    FROM t1;
    GOPRINT 'Testing with ANSI_PADDING OFF';
    SET ANSI_PADDING OFF;
    GOCREATE TABLE t2 (
       charcol CHAR(16) NULL, 
       varcharcol VARCHAR(16) NULL, 
       varbinarycol VARBINARY(8)
    );
    GO
    INSERT INTO t2 VALUES ('No blanks', 'No blanks', 0x00ee);
    INSERT INTO t2 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);SELECT 'CHAR' = '>' + charcol + '<', 'VARCHAR'='>' + varcharcol + '<',
       varbinarycol
    FROM t2;
    GODROP TABLE t1
    DROP TABLE t2
    联机帮助的例子,运行再参考帮助就知道了。
      

  3.   

    当设置为 ON 时,不剪裁字符值中插入到 varchar 列的尾随空格和二进制值中插入到 varbinary 列的尾随零。不将值按列的长度进行填充。当设置为 OFF 时,剪裁 varchar 列的尾随空格和 varbinary 列的尾随零。该设置只影响新列的定义。 SET ANSI_PADDING 为 ON 时,将允许空值的 Char(n) 和 binary(n) 列填充到列长,而当 SET ANSI_PADDING 为 OFF 时,将剪裁尾随空格和零。始终将不允许空值的 Char(n) 和 binary(n) 列填充到列长。 
      

  4.   

    SET ANSI_PADDING 怎样使用哦。 。才会出现去掉空格和0哦?