11.1开发给SQLServer2005用的Assembly

文章作者 100test 发表时间 2007:03:13 21:47:03
来源 100Test.Com百考试题网


SQL Server 2005 在核心引擎中加入了 .NET 的公共语言执行环境CLR (Common Language Runtime)。一直以来 SQL Server 核心引擎只有两大引擎:关系引擎(Relational Engine)和存储引擎(Storage Engine),现在变成三个,其改变不可谓不大。本章将介绍 SQL Server 2005 引入 .NET 引擎后的开发方式与用途。

由于 .NET Framework 自身非常巨大,而且又不是本书的探讨主题,若你有兴趣深入研究 .NET Framework 可以参照 .NET Magazine 网站(http://www.netmag.com.tw/)。

11.1 开发给SQL Server 2005用的Assembly

SQL Server 2005 让存储过程、触发器、用户自定义函数、用户自定义类型以及用户自定义聚合函数(Aggregate)等五种 SQL Server 对象皆可以通过 .NET 的程序集(assembly)来定义。以往必须要通过 C/C 才能办到的扩展存储过程(Extended Stored Procedures)而今你只要通过自己所熟悉的 .NET 语言,如 C# 或 VB.NET 来完成即可(但要放入 SQL Server 2005 的只能是 dll 函数库类型,不可以是 exe 执行文件)。而 .NET 自身强大的功能皆可以融入到 SQL Server 2005 中。

将.NET开发的程序集成到SQL Server中有以下的好处:

l 更强的程序设计逻辑:.NET Framework 中包罗万象的各种类型功能,你大都能够引用,但不是全部的类型都被允许调用使用,你可以在 Visual Studio 2005 打开数据库项目后,通过“添加引用”查看能使用的类。

l 更安全:由于 .NET 对于程序编写与执行环境的安全下了很大的功夫,不管是执行时潜在的类型安全检查(type safety check)还是管理员所设置的程序代码访问安全(Code Access Security)与角色基础安全(Role Base Security)等等诸多机制,都加强了程序执行环境的安全。SQL Server 使用根植于 CLR 的组件执行起来也就更安全与稳定。

l 统一的开发与调试环境:Visual Studio 2005 开发环境提供编写 SQL Server 2005 对象的模板,同时支持部署到 SQL Server 2005 的功能,由于 Visual Studio 2005 自身的便利性,将可以提升开发 SQL Server 2005 对象的品质与性能。

l 性能和扩充性:通过 .NET 所开发出来的程序集(Assembly)是已经编译过的程序,若是以 T-SQL 编写商业应用,则是以解释的方式执行。所以较为复杂的商业应用当然用 .NET 的语言编写更好。

l 多语言选择:由于 .NET 将程序语言与功能分开,因此挑选语言并没有很大的意义,不管是 Visual Basic、C#等语言,还是其他的语言,只要你熟悉该种语法,即可开发 SQL Server 可用的对象,而不像以往一定要使用 C/C 才行。

虽然用 .NET 程序语言开发 SQL Server 的对象有很多好处,但它仍无法取代 SQL 语言,以及纯用 T-SQL 编写的的 SQL Server 对象。复杂的商业逻辑,需要面向对象分析设计,结构化处理,访问文件、网络等周边设备,对数据加解密等诸多程序功能,自然用 .NET 语言更好。

但若纯粹访问数据,都是集合(set)方便进行添加、修改、删除和查询数据的工作,此种仍用 T-SQL 较为适合,这样才能发挥关系引擎最优化执行 SQL 语法的功能。若将所有的商业逻辑都搬进到 SQL Server 势必大幅增加服务器的负担,因此仍要慎选程序逻辑的执行位置。

整个通过 .NET 开发 SQL Server 对象的逻辑流程如图11-1所示:

图11-1 以 .NET 程序语言编写 SQL Server 2005 数据库对象

首先通过一般的集成开发环境(例如 Visual Studio 2005)新建所需的程序集,当编写并编译完当作函数库(.dll 格式)的程序集后,你可以通过 T-SQL 语法或是 Visual Studio 2005 直接将其部署到 SQL Server 2005 中,SQL Server 会把该程序集存放在数据库内,而与外部文件系统上的程序集不再有关系。也就是说若你有新的改版,需要先将 SQL Server 内的程序集删除,重新部署才可以。

当程序集部署到 SQL Server 后,通过 Create Function、Create Procedure等T-SQL 语法可以设置存储过程、用户自定义函数、触发器、用户自定义数据类型以及聚合函数等五种对象是来自该程序集,然后就当作一般的对象搭配 T-SQL 来使用。

大致了解系统架构后,接着,我们就通过 Visual Studio 2005 来开发 SQL Server 2005 内的各种对象,通过 SQL Server 2005 Management Studio 来管理设置这些对象。让你先熟悉一下这些全新的环境后,我们再进一步讨论程序编写的技术细节。



相关文章


教你怎样判断电脑的硬件故障(中)
11.2VisualStudio2005内的SQLServer方案
11.1开发给SQLServer2005用的Assembly
重装操作系统的20条基本原则(下)
重装操作系统的20条基本原则(中)
2.8SQLProfiler_SQLServer2005数据库开发详解
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛