什么是系统表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列来区分)。