体验SQL Server2005中T-SQL特性
2008-09-04 10:00:35 来源:WEB开发网在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的下一版本即将发布,我肯定它将包含更多的新功能。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››体验Win8 OneNote 高效率大功能
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接