为了账号安全,请及时绑定邮箱和手机立即绑定

系统表主值的目的是什么?它的值的含义是什么?

系统表主值的目的是什么?它的值的含义是什么?

系统表主值的目的是什么?它的值的含义是什么?系统表主.pc_value的目的是什么?为什么要提供它,人们应该如何使用它?它的类型、低价值、高价值意味着什么?最新情况:例如,谷歌搜索提供了数千种“其用途”:使用主.spt_value拆分列它包含从0到2047的数字。它非常有用。例如,如果您需要填充来自此范围的100个数字的表用于建立索引创建虚拟日历以一些不直观和复杂的方式获得对已使用对象的描述。枚举SQLServer数据库中的所有索引(GiuseppeDimauro,devx.com)“用于显示磁盘空间使用情况的SQLServer 2005脚本”这不值得讨论。这张桌子是“超级”查找表的设计噩梦。一些帖子警告不要使用它,因为它可以在SQLServer的未来版本中删除,但是已经有代码脚本使用它来演示新的SQLServer 11(Denali)的新特性:使用偏移量N行仅在SQLServerDenali中获取下N行以便于分页
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

这个spt_values表在SQLServer文档中没有提到,但它可以追溯到Sybase日,并且有一些极少量文件在Sybase在线文档中,可以在下面的注释中总结如下:

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

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

如果您仔细查看系统存储过程并检查表数据本身,很明显,该表用于将代码转换为可读字符串(除其他外)。或者,正如上面链接的Sybase文档所指出的,“将内部系统值[.]转换为人类可读的格式”。

这张桌子也是有时用在MSDN博客中的代码片段中-但从未出现在正式文档中-通常是作为数字列表的一个方便的来源。但正如所讨论的其他地方,创建自己的数字源比使用无文档的系统表更安全、更可靠。甚至连接请求若要在SQLServer本身中提供“适当”的文档编号表,请执行以下操作。

不管怎么说,这个表是完全没有文档的,所以了解它没有任何重要的价值,至少从实际的角度来看是这样的:下一个服务包或升级可能会完全改变它。当然,求知欲是另一回事:-)


查看完整回答
反对 回复 2019-07-08
?
慕容森

TA贡献1853条经验 获得超18个赞

主要回答另一个问题.

它的类型、低价值、高价值意味着什么?

大多数类型.每个特定的查找表(如果它们是单独的)都需要名称或编号。有些类型也需要低列和高列。在Sybase中,我们有一个ErrorNumber列,所以sproc可以使用RAISERROR进行硬编码(可以随版本更改等等)。

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


查看完整回答
反对 回复 2019-07-08
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

一种用法(绝对不是它的主要用法)是生成一系列数字:

--Generate a series from 1 to 100SELECT
    TOP 100
    ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNumFROM master.dbo.spt_values ORDER BY RowNum


查看完整回答
反对 回复 2019-07-08
  • 3 回答
  • 0 关注
  • 598 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信