SQL Server 2005中的CLR集成
2009-05-12 21:04:17来源:未知 阅读 ()
随着技术的不断升级,微软的王牌数据库SQL Server 2000正在逐渐淡出人们的视线,而新版的SQL Server 2005正成为企业和开发人员的新宠。本文重点关注SQL Server 2005的功能,尤其是CLR集成,这是开发人员经常要使用的功能之一。
1、SQL Server 2005简介
SQL Server 2005较SQL Server 2000有了长足进步。SQL Server 2005带来了大量新功能,新图形化用户界面(GUI)和新管理工具。下面列举了一些简单的功能介绍:
能够在数据库中托管.NET Framework中的通用语言运行时(CLR),那么开发人员就可以使用Visual Basic 2005和C#编写程序集。这对于SQL Server数据库编程人员可能是件有趣的事情,以前的编程人员受限于SQL和T-SQL,而如今却有力的暗示了应用程序的构建方法。
通过完全成熟的,能够保存多个相关数据类型的XML数据类型对XML进行深入支持。开发人员可以将XML文档存储到数据库中,同时验证其有效性,并且抽取文档的部分内容。这意味着可以将半结构化数据与关系型数据相结合,同时将它们存储到同一地方,并采取相同方式处理它们。另外,服务器端还提供了XML查询(XQuery)和XML架构定义语言(XSD)标准。
完全更新的GUI管理工具SQL Server Management Studio(SSMS),该工具提供的单个集成环境可满足配配置/管理需求。
将报表框架(SQL Server Reporting Services,缩写为SSRS)作为数据库整体的一部分。
为实现异步消息传递创建新的应用程序框架Service Broker。
经过大量改进和扩展的SQL Server Integration Services(SSIS,以前是Data Transformation Services),该工具可用于提取,转换和加载数据(另外,关系型数据库管理系统使用这个功能代价昂贵)。
以上只是介绍了SQL Server 2005的一些重点功能,每个功能都可以让开发人员细细品味,限于篇幅,本文重点介绍其中的CLR集成功能。
在SQL Server 2005中可使用通用语言运行时(CLR)集成,这意味着在SQL Server实例中提供对于.NET Framework编程模型的访问是很有必要的。为此,在SQL Server 2005中引入了程序集概念。程序集是.NET编译和托管的DLL文件。SQL Server使用程序集部署对象,例如存储过程、用户定义类型、触发器和用户定义函数。这些对象通常使用T-SQL编写,但是而今使用多种受管语言代码(例如VB.NET或者C#)也能够创建和编写这些对象。SQL Server 2005的这种新功能还提供了在数据库对象(例如存储过程,函数和类型)中,访问经过改进的.NET Framework编程模型的能力。.NET Framework 2.0版本具有多方面增强功能,这些经过改进的功能有很多已经可以为CLR集成使用。
2、受管程序集的概念
在SQL Server 2005之前,程序集也称为受管代码,它是一组编译为.dll或者.exe的文件。在.NET Framework中仍然存在这个术语和特性。然而,在SQL Server 2005中,程序集术语则变得有点模糊。
在SQL Server范围内,程序集是一个引用物理程序集.dll文件的对象。受管代码是.dll文件,该文件使用.NET Framework CLR和可访问其他受管代码来创建。更确切的说,是在SQL Server内部的其他受管代码。每段受管代码都包括两个重要的片段信息。一个是描述程序集的元数据,例如程序集方法和属性,程序集版本号。第二个片段信息是实际的受管代码,组成程序集的方法和属性。通常,使用一些高级编程语言(例如C#或者Visual Basic.NET)编写受管代码,这些代码共享类库,同时被编译为中间语言(Intermediate Language,缩写为IL)。
程序集中的受管代码实现SQL Server对象的功能,例如存储过程、UDT、CLR函数和CLR触发器。更为重要的是,程序集自身控制受管代码访问内部和外部资源的权限级别。当在SQL Server中利用CREATE ASSEMBLY语句创建程序集时,.dll文件会物理的加载到SQL Server中,这样SQL Server引擎就能够引用和使用程序集。SQL Server 2005中有两个说明所创建程序集的表,它们是sys.assemblies和sys.assembly_files。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- SQL Server迁移数据的方法 2020-03-09
- 关于exists和in的分析 2020-03-09
- SqlServer中tempdb的日志机制的介绍 2020-03-09
- 如何批量执行sql语句 2020-02-29
- sql还原数据库的教程 2020-02-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash