微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 体验SQL Server2005中T-SQL特性

体验SQL Server2005中T-SQL特性

时间:07-24 来源:TechTarget 点击:

8989

2

5632111

Rob

Kinkad

456-69-8754

4

7563333

Joe

Roberts

564-89-5555

  注意第二个结果集数据是按社会安全编号来排序的,但是行号仍然创建得好像数据是按employee_id排序的。
数据定义语言(DDL)触发器

  触发器很久以来就是T-SQL特性的一部分,现在他们的作用被扩大了。在SQL Server2005中,微软提供了数据定义语言(DDL)触发器。DDL触发器,就像名字所暗示的,可以配置为当在SQL Server 中DDL活动发生时它就会执行。DDL语句是由任何你在SQL Server数据库中使用的修改、创建或删除对象的命令组成。一般情况下,大多数DDL语句以CREATE、ALTER或DROP开头。利用DDL触发器,你可以选择无论任何时候只要一个用户发出DROP TABLE命令就运行某一脚本。

  在SQL Server的旧版本里一个相当普遍的练习是创建schema绑定基于你的所有生产表的视图,以防止意外删除一个生产表。因为视图是schema绑定的,删除操作会失败。这要求管理员做额外步骤去删除一个表;他们首先要删除一个视图。现在你可以利用DDL触发器来完成同样的目标,并且这个解决方案工作区比较小。你可以建立一个DDL触发器以ALTER或DROP TABLE语句开头,这样可以防止这个语句的完成。这又增加了一个额外的保护层,因为这个触发器需要在改动之前被删除掉或设为不可用。

  DDL触发器还具有非常显著的审计用途。触发器可以用来记录任何时候的表、存储过程或视图的增加、修改或删除的细节日志。不用再猜测是谁增加了一个新对象。真的,你用DDL触发器可以做的事是没有任何限制的。

  公共语言运行库集成

  SQL Server2005的T-SQL新特性是完全具有写和利用公共语言运行库(CLR)模块的能力,它可以集成到你的数据库中。CLR集成允许它写触发器、存储过程、函数、聚合函数和以.NET语言编写的类型。在你为此疯狂和开始用CLR重写所有东西之前,要警告你:花点时间仔细考虑哪些对象应该采用CLR。某些工作采用CLR很适合但有些则不行。如果你需要和操作系统交互,很可能就该采用公共语言运行库。另外,字符串解析或排序的复杂的运算法则如果采用CLR很可能执行性能会更好。然而,标准的T-SQL语句,像INSERT,UPDATE和DELETE还是留在T-SQL中好些。只用常识和性能测试任何你写的东西。

  写CLR的复杂性超出了本篇文章的范围,但是我将给你一个高度见解。你需要采用Visual Studio以你选择的.NET语言来写存储过程。一旦你写了,粘贴代码作为一个部件然后创建这个存储过程、函数、触发器或类型--然后将它指向这个部件。除此以外,它可以就像传统的T-SQL对象一样被调用或被使用。在我们的专家回答区你可以获得一个对CLR例程方法和T-SQL存储过程间的差异的总的概括。

  SQL Server2005中有许多改动,并不只是在T-SQL方面。我们当然没有在这片文章里涵盖所有的内容,但是这些已经是新增内容里的一些最吸引人的内容了。花些时间探讨这些新特性--你最好赶快。SQL Server的下一版本即将发布,我肯定它将包含更多的新功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top