• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
丶白
博客园    首页    新随笔    联系   管理    订阅  订阅

SQL中sysname数据类型的含义(转)

sysname

SQL Server 实例包括用户定义的名为 sysname 的数据类型。sysname 用于表列、变量以及用于存储对象名的存储过程参数。sysname 的精确定义与标识符规则相关;因此,SQL Server 的各个实例会有所不同。sysname 与 nvarchar(128) 作用相同。SQL Server 6.5 或早期版本仅支持较小的标识符;因此,在早期版本中,sysname 被定义为 varchar(30)。

重要提示:

在区分大小写或使用二进制排序规则的数据库中,仅当 sysname 以小写显示时,才会被识别为 SQL Server 系统数据类型。

------------------------------------------------------------------------------------------------------------------------------------------

是系统提供用户定义的数据类型,在功能上等同于   nvarchar(128),用于引用数据库对象名。

------------------------------------------------------------------------------------------------------------------------------------------

select   *   from   systypes 
          你可以看到系统支持的所有类型,其中有sysname

------------------------------------------------------------------------------------------------------------------------------------------

sysname等价于not   null   的nvarchar(128),这于它显示的leng-256是表示占用256个字节的空间.但是只能存128个字符(一个字符占   两个字节).

------------------------------------------------------------------------------------------------------------------------------------------

那将sysname换成nvarchar(128)也没有什么吗?

不是的,sysname等价于not   null的nvarchar(128).你换成了varchar(128)就少了not   null的限制了. 

我的感觉这个sysname字段就是系统自己在nvarchar(128)的基础上封装的一个数据类型.长度256,不可为空,主要是用来作为系统中一些元数据的类型的,比较方便,省得每次都指明长度和为空性. 

你可以用如下的语句自己比较一下 
exec   sp_help   sysname 
go 

exec   sp_help   nvarchar

posted @ 2017-03-23 16:29  丶白  阅读(5871)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3