• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张继东
看铁蹄铮铮,踏遍万里河山。磨不破,打不烂。
   首页    新随笔    联系   管理    订阅  订阅

char和varchar的一点小区别

DECLARE @vcID varChar(50)
set @vcID='1c02a297-9619-4820-b697-ddc718b3df9b'
set @vcID=''''+@vcID+''''
print @vcID

查询结果:
'1c02a297-9619-4820-b697-ddc718b3df9b'


DECLARE @vcID Char(50)
set @vcID='1c02a297-9619-4820-b697-ddc718b3df9b'
set @vcID=''''+@vcID+''''
print @vcID

查询结果:
'1c02a297-9619-4820-b697-ddc718b3df9b            

注意:第二个查询结果后面还有若干个空格。
看完sql的帮助应该可以找到答案。

如果要存储的数据比允许的字符数多,则数据就会被截断。例如,如果某列被定义为 char(10) 并且值"This is a really long character string"被存储到该列中,则 Microsoft® SQL Server™ 将该字符串截断为"This is a"。

当指定了 NOT NULL 子句时,char 数据类型是固定长度数据类型。如果一个比列的长度小的值被插入到 char NOT NULL 列中,则值的右边以空格填补剩余的位置。例如,如果一个列被定义为 char(10) 并且要存储的数据是"music",则 SQL Server 将这个数据存储为"music_____",这里"_"表示空格。

当创建一个 char NULL 列时,如果 ANSI_PADDING 是ON,它的表现就如同一个 char NOT NULL列:值的右边按照列的大小进行填补。当创建一个 char NULL 列时,如果 ANSI_PADDING 是 OFF,它的表现就如同一个将 ANSI_PADDING 设置为 OFF 的 varchar 列:尾随空格将被截断。

varchar 是可变长度的数据类型。比列的长度小的值,不会按照列的长度在其右边填补。当创建列时,如果 ANSI_PADDING 选项设为 OFF,则所有存储在列中的字符值的尾随空格都将被截断。当创建列时,如果 ANSI_PADDING 设为 ON,则尾随空格不被截断。

CHAR 函数可以把一个整数转换为 ASCII 字符。当确定控制字符时(比如回车或换行),这是很有用的。在字符串中用 CHAR(13) 和 CHAR(10) 产生一个回车并生成一个新行。

PRINT 'First line.' + CHAR(13) + CHAR(10) + 'Second line.'
posted @ 2007-05-28 17:26  简单生活  阅读(788)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3