对于新的SQL Server 2005有很多传言。对于这次还未决定的发布,下面列举了一些它的重要功能,你可以在不远的未来这样使用SQL Server。


在六月TechEd 2005大会上,是微软收获的时候:虽然产品发布的日期没有宣布,但人们对微软的新产品满怀期待,许多人都很关注这一切。我们等待新的SQL Server很久了,在这个升级版本的数据库技术中,微软提供了我们想要的功能。这里是我们发现最为有用的一些功能。

1.XML数据类型
如果说SQL Server 2005有什么功能值得大家欢呼雀跃的话,那就应该是新的本地XML数据类型了。为什么这么说?除了目前在Web友好方面的大幅度进步之外,它还为我们提供了更多的设计选项(这些并不是微软通常支持的),给我们的设计带来了很多方面。

新的XML数据类型:

  • 可以被用于表中的一列
  • 可以作为参数或变量被用于存储程序中
  • 可以存储非标准类的数据。

  • 检查计划查看卷中存储的数据是否同相关计划的XML相匹配(如果没有计划,数据就会被认为是未分类的)

    XML数据和相关数据之间的映射是双向的。

    2.DMO(Distributed Management Objects)变成了SMO(SQL Server Management Objects)
    SQL Server Management Objects (SMO,SQL服务器管理对象)是一个基于.NET架构的管理架构,它让你能够为服务器管理创建个性化应用。SMO(同之前的DMO一样)允许你把列、工作表、数据库和服务器都当作对象来处理,SMO支持SQL Server 2005的新功能,比如:Service Broker。

    SMO是优化的,除非对象被明确涉及,否则就不完全是示例对象(所有的属性都重新设定)。你也可以批量使用SQL命令,创建脚本来创建对象。你也可以自己定义用于在SQL Server 2000系统中管理SQL Server 7的服务器管理应用。

  • 3.CTEs (Common Table Expresssions) 支持递归查询
    CTE支持递归查询。CTE可以自我指示,面对***有上限。你可以把CTE作为WITH、SELECT、UPDATE、INSERT或者DELETE等这样的命令来使用。

    4.Service Broker 帮助 SQL Server实现异步通信
    这是一个前端系统,它改变了一切。现在你可以使用新的Service Broker功能以异步的方式实现对SQL Server通信的管理。通过帮助你的系统在逻辑上比物理上处理更多的通信,Service Broker提高了性能。Service Broker可以通过SQL命令进行访问,并且能够处理排队等候事件。

    这个功能给我留下了深刻的印象,以至于我不得不再三强调请大家注意它。在一个企业系统的数据层中增加一个配置容易的同步功能对于开发者来说简直是福音,为网络应用带来了大量的可能性。这种应用所能够带来的经济效益很大。Service Broker本身就是升级到SQL Server 2005的一个很好理由。

    5.创建.NET触发事件
    SQL Server 2005中.NET集成到了一定程度,这种集成所带来的一个非常有用的结果就是在Visual Studio 2005中,用户能够定义触发事件(user-defined triggers,UDTs)。

    可以在Visual Studio的模板列表中找到触发事件选项,用来生成一个文件来触发代码。在SOL中尝试这个代码的是SqlPipe。你可以在 “Build”|“ Deploy”中配置它。你可以使用T-SQL CREATE TRIGGER命令来提及触发事件对象,把它用于其他方向(比如,从CLR)。

    6.SQL Server 2005 的配置是完全动态的
    如果你在Windows Server 2003系统中使用SQL Server 2005,它的配置就是全动态的,也就是说你可以在任何时候修改配置而不用中断服务器的工作、重启机器,而且可以实时地看到反应(对于Address Windowing Extensions情况也是一样的)。

    7.定义你自己的数据类型
    SQL Server 2005 和 .NET CLR的组合让用户可以自定义数据类型,这是以前功能的组合,这一功能让你可以创建针对特殊应用或环境的数据类型。你可以把更多的常见类型进行扩展,仅仅要求你希望获得的值,并以此作为触发事件或者对于接受的数据进行限定。这里也有确认功能。

  • 8.多个活动结果集,单一连接
    这是另外一个不仅仅是值得关注,甚至还值得为之兴奋的功能。MARS(Multiple Active Result Sets)帮助你在同一个连接中能够执行多查询并产生多个结果。如果需要,可以在开放的结果集中活动。性能和好处是明显的。

    这个新的优点是结合了新的ADO.NET和SQL Server 2005的容纳多活动命令的能力而得到的。由于MARS是SQL Server 2005和ADO.NET 2.0的一部分,所以你只有两者都使用了才能拥有MARS。

    9.WAITFOR ... RECEIVE
    在之前的SQL版本中,WAITFOR是静态的。我们输入一个等待时间的值,仅此而已。现在WAITFOR是动态的,告诉它等待直到收到一个“RECEIVE”状态结果,而无须告诉它这将在什么时候发生。

    除了发出一声普通的赞叹之外,我们还应该感谢这一功能,因为它包含了新的Service Broker(参见#2)。由于Service Broker通过排队等候(因此是完全动态的)实现数据库的查询,而查询可能等待的时间长度是不一定的,所以新的、动态的WAITFOR可以根据Service Broker的判断,等到出现RECEIVE结果的时候再结束等待,这种做法非常理想。

    10.Integration Services取代DTS
    在数据转换方面有一种新的机制。目前非常流行、应用广泛的DTS现在被Integration Services取代,它由Data Transformation Pipeline和Data Transformation Runtime组成。

    数据适配器在源数据和目标数据之间建立管道,并在它们之间进行转换。这是传统的结构,但是用这种方法能够实现可观的复杂功能:例如,你可以做一对多映射,可以创建一个由转换而得的数据列。

    Data Transformation Runtime提供的组件让你可以把数据载入和转换过程组织成面向产品的操作,使用它们你可以管理连接并操作变量。这基本上是一个实时对象架构,并且可以同.NET应用进行绑定。

    DTP和DTR组件是Integration Services包的组成部分,这同DTS包很类似,但是配置和控制能力方面却高出很多,特别是在工作流方面。