苏飞论坛
标题: SQL Server 2005中的CLR(1) [打印本页]
作者: 站长苏飞 时间: 2013-3-10 12:35
标题: SQL Server 2005中的CLR(1)
导读部分
-------------------------------------------------------------------------------------------------------------
SQL Server 2005 学习笔记系列文章
http://www.sufeinet.com/thread-26-1-1.html
简介
Microsoft 通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型的功能。它支持用任何 CLR 语言(特别是 Microsoft Visual C# .NET、Microsoft Visual Basic .NET 和 Microsoft Visual C++)编写过程、触发器和函数。同时,它还提供了扩展数据库系统中的类型系统和聚合函数的功能,方法是允许应用程序创建它们自己的数据类型和聚合函数。
CLR 集成概述
Visual Studio 2005 支持在 SQL Server 2005 中开发、部署和调试托管代码。有一种新的项目类型(称为 SQL Server 项目),它允许开发人员在 SQL Server 中开发、部署和调试例程(函数、过程和触发器)、类型和聚合。
构建和部署
SQL Server 项目提供了代码模板,这使得开发人员能够轻松地开始为基于 CLR 的数据库例程、类型和聚合编写代码。该项目还允许添加对数据库中其他的程序集的引用。在构建项目时,可以将其编译成一个程序集。部署此程序集可以将程序集的二进制文件上载到与该项目相关联的 SQL Server 数据库中。部署操作还自动创建在数据库的程序集中定义的例程、类型和聚合,方法是使用在代码中定义的自定义属性(SqlProcedure、SqlFunction 和 SqlTrigger 等等)。它还上载与该程序集相关联的源代码和 .pdb 文件(调试符号)。
调试
对于任何平台来说,调试都是开发人员体验的基本部分。SQL Server 2005 和 Visual Studio 2005 为数据库编程人员提供了这些功能。调试 SQL Server 2005 对象的关键部分在于其易于安装和使用。调试到运行 SQL Server 的计算机的连接在很大程度上同调试传统操作系统中运行的进程的方式一样。调试器的功能不会受到客户端到服务器的连接类型的影响。这样就可以调试表格数据流 (TDS) 和 HTTP 连接。而且,还可以跨语言进行无缝调试。因此,如果有一个调用 CLR 存储过程的 T-SQL 存储过程,调试会允许您从 T-SQL 过程进入到 CLR 过程。
在这里我只是简单的介绍一下吧,其实还有很多这方面的知识,大家可以到微软的官方网站上去查看一下我给个链接吧方便查找
http://www.microsoft.com/china/msdn/library/data/sqlserver/sqlclrguidance.mspx?mfr=true 这上面说的很细,包括Clr和Xp的特性也有介绍
在这里我分享一下我经常使用的一些功能 吧,CLR 集成到低是做什么的呢?大家平时在数据库里写的存储过程 ,函数,还有触发器等这些东西都 是存在于数据库里的,不能跟前台的程序代码发生关系,Clr大家都 知道是支持语言的基本环境,有了他,我们就可以在Sql里部署我们用c#或是VB编写的代码了,也就是说我们在c#里写一个函数可以在Sql里直接被执行,大家是不是感觉这样很神奇呢?如果真的是这样的话,那以后数据库里再有什么复咋的逻辑直接用c#代码写一定会很方便,下面我就一个一个的很大家分享一下吧,我们先从函数入手吧
CLR中的函数
第一步 建立环境
首先我们要打开Sql2005的IDE,新建 一个数据库,这个过程 就不多说了,数据库名称 是 Text
下在我们打开VS2005 或是2008(选择.net2.0因为这里只支持2.0的CLR)新建项目
(, 下载次数: 190)