您的位置:首页 > 数据库

SqlServer调用CLR服务

2015-09-02 14:44 323 查看

作用

从数据库发起对外部服务的请求.

应用场景

心跳监测

定时启动站点

服务实现

代码部分(C#)

using System;
using System.Net;
publicpartialclassStoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    publicstaticvoid
UploadString(String url)
    {
        var client =
newWebClient { Encoding = System.Text.Encoding.UTF8
};
        client.UploadString(url,
String.Empty);
    }
}

注: Microsoft.SqlServer.Server.SqlProcedure属于System.Data程序集.

数据库部分

权限配置

USE [Exercise]
GO
ALTERDATABASE [Exercise]
SETTRUSTWORTHYON
GO
EXECsp_configure'clr enabled',1
GO
sp_changedbowner'sa'
GO
reconfigure
GO

外部DLL引用配置



外部服务调用

1.  通过EXTERNAL关键字调用外部DLL的方法
CREATEPROCEDURE [dbo].[Exercise_SP_External_UploadString]
    @Url [nvarchar](max)
WITHEXECUTEASCALLER
AS
EXTERNAL NAME [SqlserverClr.Service].[StoredProcedures].[UploadString]
GO
2.  以参数的形式调用外部服务
CREATEPROCEDURE [dbo].[Exercise_SP_CallExternalHttpService]
AS
BEGIN
    EXEC dbo.[Exercise_SP_UploadString]@Url
='http://www.baidu.com/'
END
GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 web