盘绰网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

教大家SQL Server中的CLR编程(用.NET为SQL Server编写存储过程)

时间:2023/6/26作者:未知来源:盘绰网教程人气:


[摘要]软件等级:更新时间:2016-11-11版本号:v5.7.10 MySQL Server x64官方正式版免费下载立即下载 教大家SQL Server中的CLR编程(用.NET为SQL ...
MySQL Server x64官方正式版免费下载

软件等级:

更新时间:2016-11-11

版本号:v5.7.10

MySQL Server x64官方正式版免费下载

 教大家SQL Server中的CLR编程(用.NET为SQL Server编写存储过程)

最近在这方面做了一个调研,现在在这里分享一下心得。很早就知道可以用.NETSQL Server2005及以上版本编写存储过程、触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试。

首先要说明的是要在SQL Server中启用CLR必须是在SQL Server2005及以上版本,其次在默认情况下是没有启用CLR的,必须要显示设置为启用。比如我们要在ArticleCollectorDB数据库中运行用.NET编写的函数或者存储过程,至少先要进行下面的SQL语句:

[sql] view plaincopyprint?
  1. exec sp_configure 'clr enabled', 1;--在SQL Server中启用CLR
  2. reconfigure;
  3. go
  4. --在ArticleCollectorDB数据库中设置TRUSTWORTHY为ON
  5. ALTER DATABASE [ArticleCollectorDB] SET TRUSTWORTHY ON

这时可能会得到提示要重新启动SQL Server,如果有此提示则重新启动一下。

接着我们在VS中进行编码,在这里我们将分别编写一个名为IsMatch的函数和一个名为SendMail存储过程。在VS中创建一个名为NetSkycn.Data的类库项目,添加一个SqlCLR的类,代码如下:

[csharp] view plaincopyprint?
  1. using System.Data.SqlTypes;
  2. using System.Net;
  3. using System.Net.Mail;
  4. using System.Security.Permissions;
  5. using System.Text.RegularExdivssions;
  6. using Microsoft.SqlServer.Server;
  7. namespace NetSkycn.Data
  8. {
  9. ///
  10. /// 在SQL Server环境中执行的CLR方法,注意提供给SQL Server调用的方法必须有SqlFunction/SqlProcedure Attribute
  11. /// 作者:周公
  12. /// 创建日期:2012-05-09
  13. ///span>
  14. ///span>
  15. ///
  16. public sealed class SqlCLR
  17. {
  18. ///
  19. /// 判断字符串是否匹配正则表达式
  20. ///
  21. ///要匹配的文本
  22. ///进行匹配的正则表达式
  23. ///正则表达式匹配选项,1为忽略大小写,2为多行匹配,3为忽略大小写且多行匹配
  24. ///
  25. [SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]
  26. public static SqlBoolean IsMatch(string source, string pattern,int options)
  27. {
  28. if (string.IsNullOrEmpty(source)

关键词:  教大家SQL  Server中的CLR编程(用.NET为SQL  Server编写存储过程)





Copyright © 2012-2018 盘绰网教程(http://www.panchuo.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版