通过SQL Server存储过程访问REST服务的方法?

时间:2014-08-04 17:48:00

标签: sql sql-server web-services sql-server-2008 rest

我们正在寻找一种从SQL Server 2008&较新的存储过程。我们无需从此服务获取任何信息。我们只需要强制调用在存储过程的中间运行。

我找到了一些第三方选项或CLR;但我拒绝认为这不是一个更简单的方法,因为我们只需要拨打电话而不需要任何回报。

希望有人能说清楚。谢谢!

2 个答案:

答案 0 :(得分:6)

您可以创建一个SQL代理作业来运行PowerShell脚本,然后通过msdb.dbo.sp_start_job运行该作业。这样你就不需要任何外部脚本或实用程序,也不需要任何SQL-CLR。

你的工作步骤如下:

$request = [System.Net.WebRequest]::Create('http://stackoverflow.com/')
$result = $request.GetResponse()

答案 1 :(得分:2)

我至少可以想到两种方法:

1)可能更喜欢的方式:

创建一个C#dll并从存储过程示例中调用其函数: How to call C# function in stored procedure

2)在CURL utility的帮助下呼叫休息服务。

DECLARE @PassedVariable VARCHAR(100)
DECLARE @CMDSQL VARCHAR(1000)
SET @PassedVariable = 'SqlAuthority.com'
SET @CMDSQL = 'c:findword.bat' + @PassedVariable
EXEC master..xp_CMDShell @CMDSQL

have the call to the ws inside the bat file