惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
Engineering at Meta
Engineering at Meta
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
罗磊的独立博客
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX

博客园 - RockyYu

策略模式 unity中的WWW通讯问题 需求分析的方法 用TlbImp.exe生成程序可调用的Dll C++程序引用Dll 查询本地注册表,调用某后缀文件相应的执行程序,并打开文件 windows服务的安装和卸载 FFmpeg和GPL协议 List<T>的排序 C#POST数据,HttpWebRequest请求页面,HttpWebResponse返回数据 XMLHttpRequest的使用方法 错误: 无法生成临时类 图片滚动效果代码 - RockyYu - 博客园 一个不错的给图片添加说明文字的动态层的代码 - RockyYu - 博客园 截取中文字符串的js方法 js调用XML数据生成DIV 迭代器模式(Iterator Pattern) JavaScript Boolean (逻辑)对象 - RockyYu JavaScript文件只在IE6下出错(“未结束的字符串常量”)的解决办法。
创建CLR存储过程
RockyYu · 2009-05-20 · via 博客园 - RockyYu

今天看到一篇文章:通过自定义函数提高服务器性能里面提到了用CLR创建函数。感到好奇,于是自己也试用了一下。

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

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

Code

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

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

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

Code

现在好了。再次执行存储过程“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 存储过程稍快些。

有人说Transact-SQL 存储过程没有CLR 存储过程简便、容易修改,暂时本人却还没有看出什么端倪,等待日后发掘。。。。。。