如何在MS SQL存储过程中调用Web API

时间:2016-10-14 11:28:22

标签: sql sql-server

我有一张桌子,他们有许多带有电子邮件地址列的记录,我使用web api验证电子邮件ID是否有效。 是否可以通过 MS SQL存储过程

进行调用

2 个答案:

答案 0 :(得分:2)

尝试以下sp

    Declare @Object as Int;
    Declare @ResponseText as Varchar(8000);


    Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
    Exec sp_OAMethod @Object, 'open', NULL, 'get',
                 'http://your-api-address', --Your Web Service Url (invoked)
                 'false'
    Exec sp_OAMethod @Object, 'send'
    Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT

    Select @ResponseText

    Exec sp_OADestroy @Object

答案 1 :(得分:2)

几乎没有任何情况下这种事情是个好主意。在进入表格之前验证您的电子邮件地址不是更好吗?

就糟糕的想法而言,CLR存储过程将是一个选项,就像从另一个stackoverflow问题粘贴的sp_OACreate内容一样,但是这样的事情在外面更好>数据库?

为什么不将“原始”电子邮件地址存储在某个地方的“临时”环境中 - 可能是数据库中的另一个表,然后在其他地方创建验证过程,可能是在Powershell脚本,.Net程序或其他类型的调用Web服务很简单的环境?通过这种方式,您可以确定地址在编写时是否有效,然后采取适当的措施(不要写它?设置某种标志?)。