gpt4 book ai didi

sql - SQL Server 中的 SYSNAME 数据类型是什么?

转载 作者:行者123 更新时间:2023-12-01 16:47:42 28 4
gpt4 key购买 nike

SQL Server SYSNAME 数据类型的用途是什么? BOL说:

The sysname data type is used for table columns, variables, and stored procedure parameters that store object names.

但我真的不明白。您可以提供一个用例吗?

最佳答案

sysname 是一种内置数据类型,长度限制为 128 个 Unicode 字符,IIRC 主要用于在创建脚本时存储对象名称。它的值不能为NULL

与使用nvarchar(128) NOT NULL 基本相同

编辑

正如 @Jim 在评论中提到的,老实说,我认为在商业案例中您不会使用 sysname。它主要由 Microsoft 在 SQL Server 中构建内部 sys 表和存储过程等时使用。

例如,通过执行 Exec sp_help 'sys.tables' 您将看到列 name 被定义为 sysname 这是因为this 的值实际上是一个对象本身(一个表)

我不会太担心。

还值得注意的是,对于那些仍在使用 SQL Server 6.5 及更低版本的人(还有人在使用它吗?),内置类型 sysname 相当于 varchar(30 )

文档

sysname 是使用 nchar and nvarchar 的文档定义的,在备注部分:

sysname is a system-supplied user-defined data type that is functionally equivalent to nvarchar(128), except that it is not nullable. sysname is used to reference database object names.

为了澄清上述说明,默认情况下,sysname 被定义为 NOT NULL,当然可以将其定义为可空。还需要注意的是,确切的定义可能因 SQL Server 实例而异。

Using Special Data Types

The sysname data type is used for table columns, variables, and storedprocedure parameters that store object names. The exact definition ofsysname is related to the rules for identifiers. Therefore, it canvary between instances of SQL Server. sysname is functionally the sameas nvarchar(128) except that, by default, sysname is NOT NULL. Inearlier versions of SQL Server, sysname is defined as varchar(30).

有关 sysname 允许或禁止 NULL 值的更多信息可以在此处找到 https://stackoverflow.com/a/52290792/300863

仅仅因为它是默认值(NOT NULL)并不能保证它会是默认值!

关于sql - SQL Server 中的 SYSNAME 数据类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720212/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com