ms sqlserver clr应用(一)
来源:互联网 发布:批处理调用软件 编辑:程序博客网 时间:2024/05/18 01:46
mssql 的存储过程和函数的功能已经很强大了,但要做一些涉及IO操作的处理时,还是需要clr的帮忙。本文主要阐述创建clr的过程及注意事项。
一、CLR 程序的创建前对数据库的准备工作:
- 允许数据库使用clr:
exec sp_configure 'show advanced options', '1'; go reconfigure; go exec sp_configure 'clr enabled', '1' go reconfigure;
- 数据库设为值得依赖。
ALTER DATABASE test SET TRUSTWORTHY ON;
using System; using System.Data.SqlTypes; namespace gym { public class gymtest { //用于创建函数 public static string todate( string cstr) //要用static { DateTime d; if (!DateTime.TryParse(c, out d)) d = DateTime.Now; if (d < DateTime.Parse("1900-01-01")) d = DateTime.Now; return d; //C#中的日期范围是从1-1-1开始,而sql server中是从1753-1-1开始 } //用于创建存储过程 public static SqlInt32 div(SqlInt32 i, ref SqlInt32 j, out SqlInt32 k) { if (i.IsNull || j.IsNull) { k = SqlInt32.Null; return 1; } k = i.Value % j.Value; j = i / j; return 0; } //用于创建触发器 [SqlTrigger(Name = @"send_sms", Target = "[dbo].[sms]", Event = "FOR INSERT")] unsafe public static void send_sms() { ...// 下一篇讲如何利用触发器通过短信猫发送短信 } } }
三、编译成dll文件 //注意.net版本,sql2008还是用.net 2.0编译 csc /t:library /out:c:\gym.dll c:\gym.cs /unsafe
四、创建程序集 create assembly gym from 'c:\gym.dll' with PERMISSION_SET=UNSAFE //如果C#中涉及到unsafe代码的,要设PERMISSION_SET=UNSAFE
五、创建clr存储过程或触发器- 建立函数
create FUNCTION [dbo].[ctod](@c nvarchar(10)) //ctod函数名 RETURNS datetime WITH EXECUTE AS CALLER AS EXTERNAL NAME [gym].[gymtest].[todate] //依次:namespace.class.function
- 建立存储过程
create proc mydiv @i int,@j int output,@k int output //参数及属性要一一对应 as external name [gym].[gymtest].[div] //依次:namespace.class.function
- 建立触发器
CREATE TRIGGER smstrigger ON sms FOR INSERT //sms表名 AS EXTERNAL NAME gym.gymtest.send_sms //依次:namespace.class.function
注:能用SQL存储过程解决的事情最好不用CLR,CLR的效率远远低于sql的存储过程,特别是查询表之类的操作
0 0
- ms sqlserver clr应用(一)
- sqlserver 步步走(一)(Ms SQLServer)
- SqlServer CLR存储过程使用一例
- SQLSERVER应用问题解答13例(一)
- SQLSERVER应用问题解答13例(一)
- SQLServer和Web应用体系结构(一)
- CLR 学习札记(一)
- SqlServer调用CLR服务
- Sybase EAServer学习(一) 创建Ms SqlServer 连接池
- Sybase EAServer学习(一) 创建Ms SqlServer 连接池
- SQLServer Compact 4.0 中的应用(一),基础配置
- 索引应用(ms-sql)
- MS SQLServer 资源链接
- MS SQLServer Trigger
- MS SQLServer 基础
- java连接MS SQLServer
- MS SQLSERVER端口修改
- MS-Sqlserver访问MySql
- iOS开发之上架AppStore
- linu 任何用户都无法登陆服务器
- JavaScript常用语句表达式
- 4-6 求单链表结点的阶乘和
- 我的大学
- ms sqlserver clr应用(一)
- 对于opencv使用cvLoad加载分类器报错的解决
- 正则表达式
- JavaScript 数组双重for循环
- Personal Website
- /dev/mem
- 动态添加表格(一)
- 2015年12月14日
- 数据仓库、数据库开发面试题目汇总: