可能一般 数据库开发人员可能会对CLR会比较感兴趣, 平时写T-SQL多一些.对C#接触过少,难免
可能觉得有些难度. 其实这个不并难. 如果有了调试,如果能进入程序内部,看到代码,就会感觉十分简单.
我创建一个非常简单的CLR函数. 返回字符的长度.
www.2cto.com
第一步,我们要在数据库中启用CLR 功能. 我们在一个测试数据库中,启用CLR功能
[sql]
usetest --测试库
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
/** 这是为了使程序集能获得更大权限 作为测试用使用下面语句 */
alter database testset trustworthy on
如图:
.第二步 打开visaul studio 2010 开发工具,新建项目 如图:注意是 visual
c# sql clr 项目
我们添加对一个数据库的引用.
然后点击确定. 后项目
点确定后项目解决方案如图:
我们点右健添加,用户自定义函数
www.2cto.com
代码如下:
[csharp]
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction]
public static intFunction1(String Field_String)
{
// 在此处放置代码
return Field_String.Length;
}
};
如图:
第三步,生成并部署 CLR 项目: 在解决方案点右健 部署
如果生成,下面将输出,成功的提示符.如图:
我们在数据库中看一下,是什么样子.
程序集多了一个 SqlServerProject3和Function1. (先不管这个Function1,是怎么写的。我们看
一下运行的结果是什么,。回头你再看看怎么写的,很简单的)
你看它返回了字符的长度就是4。 大家现在很想看看怎么调试。这个太简单了,要是会调试,那么复
杂的代码也没有问题。
杂的代码也没有问题。
=============================================================================
OK: 我们回到visual studio 工具中上。
点击test.scripts
把里面的代码都清一下。
然后写上 select dbo.Function1('abcd') 且打开断点 如图:
我们点那个绿色的小三角形,。然后按F11注意是F11
www.2cto.com
呵呵,大家看到没,它已经进入了C#程序中去,我们就可以通过一步步调试,查看程序的运行。
是不是很棒。