什么是系统表master..spt_values的目的是什么,它的值的含义是什么?

系统表master的目的是什么?spt_values?
为什么提供了,怎么用呢?

它的types是什么意思,低,高价值?

更新:
谷歌search给了成千上万的“它的用途”,例如:

  • 使用master..spt_values分隔列
  • 它包含从0到2047的数字。这是非常有用的。例如,如果您需要从这个范围内填充100个数字
  • 为build立索引
  • 创build虚拟日历
  • 以一些非直观和复杂的方式获得对象的描述
    枚举SQL Server数据库中的所有索引(Giuseppe Dimauro,devx.com)
  • “显示磁盘空间使用情况的SQL Server 2005脚本”
  • “这不值得谈论,这张桌子是一个”超级“查询表的devise噩梦”

    一些post警告不要使用它,因为它可以在未来版本的SQL Server中删除,但是已经有代码脚本用它来说明新的SQL Server 11(Denali)的新function:

  • 使用OFFSET N ROWS FETCH NEXT N ROWS ONLY在SQL Server Denali中进行简单的分页

SQL Server文档中没有提到spt_values表,但它可以追溯到Sybase时代,Sybase在线文档中有一些非常小的文档 ,可以在此评论中总结:

要查看它是如何使用的,请执行sp_helptext并查看引用它的其中一个系统过程的文本。

换句话说,阅读代码并自己解决。

如果你围绕系统存储过程进行查询并检查表数据本身,则很清楚表是用于将代码翻译成可读string(等等)。 或者如上面链接的Sybase文档所述,“将内部系统值转换为可读格式”

该表有时也用于 MSDN博客中的代码片段 – 但从来没有在正式文档中 – 通常作为数字列表的便利来源。 但正如其他地方所讨论的那样,创build自己的数字源是比使用无证系统表更安全,更可靠的解决scheme。 甚至有一个连接请求在SQL Server本身中提供一个“正确的”,文档化的数字表。

无论如何,这张表完全没有文件,所以对它的了解没有任何价值,至less从实际的angular度来看:下一个服务包或升级可能会完全改变它。 当然,知识的好奇心是另一回事:-)

大部分在另一个问题上回答

它的types是什么意思,低,高价值?

大多数types(即每个特定的查找表,如果它们是分开的)需要名称或数字。 某些types还需要低列和高列。 在Sybase中,我们有一个ErrorNumber列,因此,sproc可以RAISERROR,它不是硬编码的(可以随着版本的变化等)。

除非列举的列表对你来说是“神秘的”,否则它不是“神秘的” 它只是一个查找表(所有这些都由Type列来区分)。