ZDNetChina中文社区 » 数据库/数据仓库 » SQL SERVER » SQL Server 2005:向系统表说再见


2008-4-23 14:36 Casey
SQL Server 2005:向系统表说再见

微软的SQL Server 数据库管理员,快快想一下!在不使用任何的文档的情况下,编写一个查询,从SQL Server 2000系统表中抽取索引的列表,然后列举每个索引中的字段,并判断这个字段是否按照升序或者降序进行排序。你有两分钟的时间。快!

2008-4-23 14:36 Casey
高手们快来帮帮小弟!!

2008-4-25 10:04 tomotajing
这里面涉及了系统索引、系统索引关键字,系统字段,以及一些元数据函数,其中包括类似OBJECT_NAME 和INDEXKEY_PROPERTY这样的备用信息。到现在为止,要编写这样的一个查询很明显要花费远远超过2分钟的时间了。

2008-4-25 10:16 lolitacool
是啊,SQL Server 2000数据库管理员需要浏览深奥的系统表,这是这项使用数据库管理系统的工作中最糟糕的一部分。系统表,通常是有效率的,但是在我的印象里,它可从来不是为了用户友好设计的。

2008-5-7 14:51 tomotajing
对啊,SQL Server 2000的系统表是挺恶的,不过眼前就有救星了。在SQL Server 2005中,系统表不见了。是的。不见了。再也不需要对陌生的位进行操作,也不需要找出神秘的编码方案——这在过去都是必需的。对于你们中间需要对遗留下来的参考这些表的人来说,我知道你在想什么:无休止的机械的升级以保障与SQL Server 2005的兼容。但是还不要心生厌恶。系统中仍然存在类似系统表的对象,就是为了向下兼容的目的。但是表的自身是——或者是实际上应该是——被遗忘,像8-tracks 和 Tab一样被投入了历史的垃圾桶中。

2008-5-7 14:54 rock163
路过,不会,帮顶   :lol :lol

2008-5-7 14:55 Casey
楼上说的是真的吗?那2005中的那些表都去哪了呢?

2008-5-7 14:58 tomotajing
SQL Server 2005中的系统数据现在存储在隐藏的“资源”表中,这个表只能被服务器自身直接访问。低级用户(和数据库管理员)必须使用新的一系列的分类视图,这些视图显示了从各种我们看不到也不能调用的隐藏表和各种隐藏函数中获得的数据。以前版本的SQL Server 中的系统表现在作为一系列所谓的(也相当正确的)“兼容视图”的形式实现。

2008-5-7 14:58 tomotajing
分类视图和它们的伙伴,动态管理视图(下面进行解释),代表了一种处理元数据的方式,这些元数据是完全重新设计和重新思考出来的。没有了那些只会给数据库管理员一些底层数据的微小感觉的神秘的表,现在的SQL Server提供了丰富的资源:SQL Server 2005中有超过200个分类和管理视图,取代了以前版本中大约50个的系统表。你可以从分类视图中获得所有的数据类型。对于初学者,所有常见的内容都可以获得。

2008-5-7 14:59 tomotajing
例如:查看索引中的数据,使用sys.indexes,而不是原先的sysindexes——奇怪的是,现在称之为sys.sysindexes。对于约束,试试sys.check_constraints, sys.default_constraints, 或者 sys.key_constraints。

页: [1]


Powered by Discuz!  Archiver   © 2001-2006 Comsenz Inc.