2016-10-14 38 views
0

我有一張表,它們有許多帶有電子郵件地址列的記錄,我正在使用web api驗證電子郵件ID是否有效。 它是通過MS SQL存儲過程調用可能如何在MS SQL存儲過程中調用Web API

+0

https://stackoverflow.com/help/how-to-ask – jarlh

+3

[從sql server存儲過程調用api]的可能重複(http://stackoverflow.com/questions/22067593/calling-an- API-從-SQL服務器存儲的過程) –

回答

1

試試下面的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 
2

幾乎沒有什麼情況下這種事情是一個好主意。在之前驗證你的電子郵件地址不是更好嗎?

至於不好的想法走,CLR存儲過程會是一個選擇,因爲會從另一個計算器問題粘貼sp_OACreate的東西,但肯定這種事情不如做到數據庫?

爲什麼不將「原始」電子郵件地址存儲在某個「暫存」環境中 - 可能是數據庫中的另一個表,然後在別處創建驗證過程,可能是Powershell腳本,.Net程序或其他類型調用Web服務的環境非常簡單?通過這種方式,您可以確定地址在寫入時是否有效,然後採取適當的措施(不要編寫它?設置某種標誌?)。