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

原文地址:https://www.cnblogs.com/jiuban2391/p/6605827.html