温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

创建CLR存储过程是怎样的

发布时间:2022-01-10 18:41:31 来源:亿速云 阅读:206 作者:柒染 栏目:编程语言

今天给大家介绍一下创建CLR存储过程是怎样的。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

下面叙述了创建CLR存储过程,从理论到实践,笔者把代码做了清晰地解释,能保证你能明白,希望通过此文能给你带来帮助。

首先,打开Visual Studio,点击“创建”->“Visual C# ”->“数据库”->“SQL Server 项目”。选择完成后,会自动弹出一个数据库连接的窗口,按照你的实际情况选择吧,这里没什么不同,就不多说了。按照这个步骤就可以创建一个新的SQL Server项目。

其次,右击项目名称,点击“添加”->“CLR存储过程”,这时会项目里会多出一个.cs文件。编辑一下。

using System;  using System.Data;  using System.Data.SqlClient;  using System.Data.SqlTypes;  using Microsoft.SqlServer.Server;  public partial class Test  {      [Microsoft.SqlServer.Server.SqlProcedure]      public static void StoredProcedures()      {          // 在此处放置代码          SqlPipe sp = SqlContext.Pipe;          string sql = "Select * from [Table_1]";          using (SqlConnection conn = new SqlConnection("context connection=true"))          {              conn.Open();              SqlCommand cmd = new SqlCommand();              cmd.CommandType = CommandType.Text;              cmd.Connection = conn;              cmd.CommandText = sql;              SqlDataReader rdr = cmd.ExecuteReader();              sp.Send(rdr);              conn.Close();          }      }  };

第16行:using (SqlConnection conn = new SqlConnection("context connection=true")) 是指“上下文连接”可以让你使用当前登录到数据库的用户作为你的登录数据库的验证信息。

编辑完成后,我们可以编译一下,如果编译通过。我们就可以将其部署到SQL Server上了。右击项目名称,选择“部署”就OK了。当然直接“运行”,系统也会自动部署它的。

这个时候,如果我们在SQL Server中执行我们的CLR存储过程,恐怕它会提示有错误。“禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项。
”这个时候,我们需要执行下面这段脚本

--在Sql Server中执行这段代码可以开启CLR  exec sp_configure 'show advanced options', '1';  go  reconfigure;  go  exec sp_configure 'clr enabled', '1'  go  reconfigure;  exec sp_configure 'show advanced options', '1';  go

现在好了。再次执行CLR存储过程“Exec StoredProcedures”。就完成了。

Transact-SQL 存储过程与CLR存储过程,基本上没有什么不同,不过CLR存储过程是不能在SQL Server里被“修改”的,选择“Create”、“Alter”等也都是看不到存储过程内部的。真正的内容只能在“SQL Server 项目”中才能看得到。

性能上,我之前试了100000条的数据,同样都是“Select * From 【Table】”Transact-SQL 存储过程用了大约8秒钟,而CLR存储过程用了大约9~10秒钟,所以肯定还是Transact-SQL 存储过程会比CLR存储过程稍快些。

以上就是创建CLR存储过程是怎样的的全部内容了,更多与创建CLR存储过程是怎样的相关的内容可以搜索亿速云之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下亿速云!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

clr
AI