2012-01-09 73 views
0

有沒有辦法從SQL Server調用aspx頁面?我聽說過這個,但不知道如何打電話? 在我的情況下,我有一個SQL作業,我需要調用aspx來執行某些任務。如何從sql server調用aspx頁面?

+1

頁面你是什麼意思「稱之爲」是什麼意思?你究竟想要做什麼? – 2012-01-09 21:03:16

+0

我有一個SQL作業,通過它我必須發送帶有特定附件的郵件?通過調用aspx頁面,我可以輕鬆地執行此任務。 – 2012-01-09 21:13:42

+0

如果你甚至不知道如何做到這一點,你怎麼知道你可以輕鬆做到這一點?我將不得不與@TomTom的答案一起去。 – 2012-01-09 21:15:21

回答

1

您可以創建一個.NET程序集,執行http調用並將其加載到SQL Server中,以便從那裏訪問它。

請參閱this MSDN article關於如何在SQL中創建程序集,以及如何使用T-SQL 2從此類程序集調用.Net函數。

這樣做的一個缺點是(據我所知)沒有辦法參數化URL調用(就像在配置文件中一樣)。每次URL更改時,您都必須在SQL中重新部署程序集。

4

不是全部?

在我的情況我有一個SQL作業,我需要調用aspx來執行某些任務。

被濫用。 SQL Server是一個數據庫。 SQL Server作業(假設你的意思是作業)並不是一個體面的調度系統的替代品。它不應該用於運行諸如郵件活動等。

重做您的系統以堅持使用SQL Server,因爲它打算使用,而不是通過使其看起來像一個應用程序服務器,通過濫用每個可能的功能。

+0

我並不完全同意或不同意你的回答。沒有足夠的上下文來確定OP所尋找的應該委派給不同的系統,但我認爲從SQL Server發送電子郵件具有有效的業務場景。 – Icarus 2012-01-09 21:26:33

+0

是的。有效的商業理由是由一個非專利人士設計的愚蠢。在那裏,經常看到它。想要這樣做嗎?編寫一個運行在Windows調度程序定期調用的服務器上的小程序。 SQL Server不是應用程序服務器。從來沒有,永遠不會,但一些開發商沒有看到,即使用棒球棒反覆擊中頭部。 – TomTom 2012-01-10 06:47:23

0

您可以從SQL Server中完成您需要的任務(發送帶附件的電子郵件),無需將任何程序集加載到SQL Server中。

看到這個答案here.和sp_send_dbmail的完整文檔here.

+0

謝謝艾卡洛斯,但我必須發送多個Excel/PDF附件和電子郵件,並且我沒有任何權限在數據庫服務器中生成新文件。 – 2012-01-09 21:27:21

0

有沒有辦法從SQL Server調用aspx頁面?

是的,但請不要。它需要禁用本地SQL Server安全性,以及其他一些醜陋的東西。

反過來這樣做好得多。讓您的網頁調用SQL Server以獲取所需的數據。您甚至可以使用Service Broker通知進行設置,您不必使用輪詢。

0

寫一個小服務來處理上述任務。將整個作業從SQL Server移動到服務中,或者使用數據庫表標記該服務需要執行的工作。

0

可以直接調用使用

Declare @URL varchar(1000) 
Declare @Object as Int; 
set @URL='your page URL' 

Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; 
Exec sp_OAMethod @Object, 'open', NULL, 'get',@URL,'false' 
Exec sp_OAMethod @Object, 'send'