Sql-Server
如何讓 SQL Server 向 API 發送作業通知警報
我正在嘗試從我的電子郵件和聊天客戶端(HipChat)中獲取工作通知。到目前為止,我的Google搜尋還不太成功,所以我將向社區提出問題:有沒有辦法將通知從 SQL Server 發送到 API?
我的第一個想法是我需要添加一個額外的作業步驟,這將是一個 powershell 常式來執行 api 呼叫。
因此,您需要 SQL Server 進行 HTTP 呼叫。T-SQL 中沒有任何東西可以直接執行此操作。您將需要使用它支持的一種通用程式嵌入。
您自己的從新作業步驟呼叫 PowerShell 的建議將起作用。如果有參數要從執行工作的作業步驟傳遞到進行 HTTP 呼叫的作業步驟,這會變得有點尷尬,但有一些方法可以實現。
由於 SQL Server 2005 儲存過程可以用任何 .Net 語言編寫。該程式碼可以實現任何其他 .Net 程序可以實現的任何東西,包括 HTTP 呼叫。不過,有幾件事需要注意。可以編寫會使 SQL Server 本身崩潰的程式碼。HTTP 請求可能需要很長時間才能完成。如果同步執行,這將保持打開目前事務和任何活動鎖。這會嚴重影響並發性。最好使用 SQL CLR 寫入隊列,然後非同步呼叫 API。
最近增加了對用 Python、R 和 Java 編寫的程式碼的支持。其中任何一個都應該能夠發出 HTTP 請求。
對於真正勇敢的 COM 對象,可以使用sp_OA*過程直接從 T-SQL 實例化。這是一個實現。它具有組裝的便利性和線性 B 的清晰度。我在職業生涯中使用過一次。這已經足夠了。
對於我的兩分錢 - 如果案例是一個簡單的“這項工作已經結束”,我會選擇工作步驟 / PowerShell 組合。