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)并不能保证它会是默认值!

10-05 19:54