sql Server 实例包括用户定义的名为 sysname 的数据类型。sysname 用于表列、变量以及用于存储对象名的存储过程参数。sysname 的精确定义与标识符规则相关;因此,sql Server 的各个实例会有所不同。sysname 与 nvarchar(128) 作用相同。sql Server 6.5 或早期版本仅支持较小的标识符;因此,在早期版本中,sysname 被定义为 varchar(30)。
重要提示:
在区分大小写或使用二进制排序规则的数据库中,仅当 sysname 以小写显示时,才会被识别为 sql Server 系统数据类型。
------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
select * from systypes
你可以看到系统支持的所有类型,其中有sysname
------------------------------------------------------------------------------------------------------------------------------------------
sysname等价于not null 的nvarchar(128),这于它显示的leng-256是表示占用256个字节的空间.但是只能存128个字符(一个字符占 两个字节).
------------------------------------------------------------------------------------------------------------------------------------------
那将sysname换成nvarchar(128)也没有什么吗? 不是的,sysname等价于not null的varchar(128).你换成了varchar(128)就少了not null的限制了. 我的感觉这个sysname字段就是系统自己在varchar(256)的基础上封装的一个数据类型.长度256,不可为空,主要是用来作为系统中一些元数据的类型的,比较方便,省得每次都指明长度和为空性. 你可以用如下的语句自己比较一下 exec sp_help sysname go exec sp_help varchar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。