對客戶端的系統和設置做一些限制,我想知道SQL Server是否可以關閉Web請求?SQL Server關閉Web請求
我需要能夠在更新sql server列後發送電子郵件。我用數據庫郵件觸發了一個觸發器,但客戶端上的數據庫服務器不允許這樣做。另一種方法是,準備就緒時,該數字就會觸發Web請求。我會通過Web服務器上的Web服務來完成它,並讓它只輪詢表,但這看起來像是很多浪費的週期。
任何想法?
對客戶端的系統和設置做一些限制,我想知道SQL Server是否可以關閉Web請求?SQL Server關閉Web請求
我需要能夠在更新sql server列後發送電子郵件。我用數據庫郵件觸發了一個觸發器,但客戶端上的數據庫服務器不允許這樣做。另一種方法是,準備就緒時,該數字就會觸發Web請求。我會通過Web服務器上的Web服務來完成它,並讓它只輪詢表,但這看起來像是很多浪費的週期。
任何想法?
您可以從SQL Server執行託管代碼。創建一個windows服務,並讓它在C#中完成任何你想要的事情,然後讓SQL服務器調用它。
結帳this鏈接樣本程序
從SQLCLR做不調用Web服務,特別是不調用Web服務(或發送電子郵件)通過SQLCRL從觸發器。爲什麼使用SQLCLR進行外部http或smtp訪問是一個不好的主意,但從觸發器中執行它有很多原因是可怕的。試想一下,如果Web服務響應時間爲10秒,您的應用程序將如何運行......
您必須從外部應用程序進行郵件交互。您應該通過隊列分離應用程序和電子郵件程序之間的交互。有關如何將SQL Server表用作隊列,請參閱Using Tables as Queues。您可以直接從您的應用程序中排隊郵寄請求,也可以使用存儲過程插入數據並排入請求,或者作爲最後的手段,在表上使用觸發器來排列郵件請求。你的電子郵件應用程序(一個單獨的服務)應該監視這個隊列並通過發送實際的電子郵件(或者http網絡請求)來爲它提供服務。
嗨 - 這是一個問題,我已經問了很多次許多版本(自從6.5以來,我一直在使用MSSQL)......並且,上次我檢查了「輪詢」仍然是最好的答案:(我'但我向你保證,從SQL觸發器中觸發COM/ActiveX對象肯定不是*(在MSSQL2000或更低版本中):( – paulsm4
)有點不好意思,我正在研究SQL CLR Web請求 – cdub
我正在運行2005. – cdub