zoukankan      html  css  js  c++  java
  • SQL Server ->> SET ANSI_PADDING对于字符串插入的影响

    前面写了《SQL Server ->> 字符串对比》讲了SQL Server在做字符串对比和排序时的对尾随空格的处理方法。

    再说说有一个和字符串尾随空格相关联的东西就是SET ANSI_PADDING选项。

    这个选项只在数据表的字符串字段被更新或者新的数据行插入到表中的时候作用。它控制着SQL Server在遇到字符串尾随空格时是否截断空格,以及是否填充空格以达到预定义的字符字段长度。

    对于已经存储到表里面的字符串数据字段,是不会受影响的(前提是没有在本次被更新)。而且它也只是影响某些字符串类型,像charvarcharbinary, 和varbinary。其他的字符串类型像ncharnvarcharntexttextimagevarbinary(max)varchar(max), and nvarchar(max)并不受影响,原因是它们本身是永远开启SET ANSI_PADDING为ON的。

    微软是建议永远开启这个选项。

    设置

    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 列中的二进制值的尾随零。

  • 相关阅读:
    .net 自带的oracleclient 的一点小问题
    重新感受Windows 的激情
    三点定面的算法实现
    回归.NET的世界
    .NET 基础题, 可以做面试题, 不断更新 20111
    C#根据字符串生成唯一的数字
    最近看的书
    代码中的注释, 需要面向功能注释,而非使用注释
    html 页面嵌入 Silverlight , Silverlight控件覆盖悬浮HTML元素的解决方法.
    gitlab clone或者pull 仓库
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/4974941.html
Copyright © 2011-2022 走看看