SQL Server SYSNAME数据类型是什么? BOL说:
但我真的不明白。您可以提供一个用例吗?
最佳答案
sysname
是一个内置数据类型,该数据类型限制为128个Unicode字符IIRC,主要用于在创建脚本时存储对象名称。它的值不能是NULL
与使用nvarchar(128) NOT NULL
基本相同
编辑
正如@Jim在评论中提到的那样,我认为您实际上并没有使用sysname
的商业案例。它主要由Microsoft在SQL Server中构建内部sys
表和存储过程等时使用。
例如,通过执行Exec sp_help 'sys.tables'
,您将看到name
列已定义为sysname
,这是因为此值实际上是本身的对象(表)
我对此太担心了。
还值得注意的是,对于那些仍在使用SQL Server 6.5及更低版本的人(还有人在使用它吗?),内置sysname
类型等同于varchar(30)
文档sysname
由 nchar
and nvarchar
的文档在备注部分中定义:
为了澄清以上说明,默认情况下 sysname 被定义为NOT NULL
,当然可以将其定义为可为空。同样重要的是要注意,确切的定义在SQL Server实例之间可能有所不同。
Using Special Data Types
有关sysname
允许或禁止NULL
值的更多信息,请参见https://stackoverflow.com/a/52290792/300863。
仅仅因为它是默认值(不能为NULL)并不能保证它会是默认值!