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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM