.NET中CLR函数如何使用
本篇文章为大家展示了.NET中CLR函数如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、成都做网站、成都网站建设、网站优化、软件开发、网站改版等服务,在成都十载的网站建设设计经验,为成都近1000家中小型企业策划设计了网站。
在 SQL Server 中创建 CLR 函数分为下列几个步骤:
使用 .NET Framework 支持的语言将函数定义为类的静态方法。然后,使用适当的语言编译器编译该类,在 .NET Framework 中生成程序集。使用 CREATE ASSEMBLY 语句在 SQL Server 中注册程序集。通过使用 CREATE FUNCTION 语句创建引用注册程序集的函数。
注意:
在 Microsoft Visual Studio 中部署 SQL Server 项目将在为该项目指定的数据库中注册程序集。部署项目时,还会在数据库中为使用 SqlFunction 属性注释的所有方法创建 CLR 函数。
注意:
默认情况下,关闭 SQL Server 执行 CLR 代码的功能。您可以创建、更改和删除引用托管代码模块的数据库对象,但是除非通过使用 sp_configure (Transact-SQL) 启用了 clr enabled 选项,否则这些引用将不会在 SQL Server 中执行。
访问外部资源
可以使用 CLR 函数访问外部资源,例如文件、网络资源、Web 服务及其他数据库(包括 SQL Server 远程实例)。这可以通过使用 .NET Framework 中的各种类(例如 System.IO、System.WebServices 及 System.Sql 等)来实现。至少应将包含此类函数的程序集配置为设置了 EXTERNAL_ACCESS 权限,才能实现此目的。可以使用 SQL 客户端托管访问接口访问 SQL Server 远程实例。但在 CLR 函数中不支持与发起服务器的环回连接。
示例如下:
***步:
第二步:
public class Class1
{
public static string MySplit(int filedIndex, string filedName)
{
//filedIndex从1开始
try
{
if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
{
return "";
}
else
{
return filedName.Split('|')[filedIndex - 1].Trim();
}
}
catch
{
return "";
}
}
}
//得到程序集 ClassLibrary1.dll
第三步:
CREATE ASSEMBLY Class1 AUTHORIZATION [dbo] FROM 'C:\ClassLibrary1.dll' WITH PERMISSION_SET = SAFE |
第四步:
CREATE FUNCTION dbo.MySplit ( @filedIndex AS INT, @filedName AS NVARCHAR(255) ) RETURNS NVARCHAR(255) AS EXTERNAL NAME Class1.Class1.MySplit |
第五步(测试):
select dbo.MySplit(2,name) from mytesttable
上述内容就是.NET中CLR函数如何使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
标题名称:.NET中CLR函数如何使用
本文路径:http://scyanting.com/article/iehied.html