理解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
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的限制了.
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
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
推荐阅读
-
SQL 中的运算符与别名:使用示例和语法详解
-
深入理解Java JSP中的九个内置对象及Cookie对象详解
-
PL/SQL中的运算符详解
-
理解SQL Server中的varchar与nvarchar:基本概念及差异解析
-
理解并掌握SQL Server中的共享锁、排他锁和更新锁
-
理解并掌握SQL Server中的共享锁、排他锁和更新锁
-
转换你的数据:深入理解 SQL Server 中的 CONVERT 函数
-
SQL Server 日期转换方法大全:支持各种数据类型和格式样式的转换 说明: 本篇文章详细介绍了如何在SQL Server中进行日期转换,包括各种数据类型和格式样式的转换方法。其中包括了科威特算法的阿拉伯样式中的数据格式,并提供了多种样式可供选择。此外,还给出了详细的示例和注意事项,帮助读者更好地理解和应用这些转换方法。
-
简化版!理解Vue中的动态组件与Keep-Alive缓存、Webpack的代码分割及异步组件、$ref引用元素/组件、组件生命周期和v-model详解
-
彻底理解Java中的包、导入和jar文件问题 - classpath详解