2013-08-01 71 views
-1

我用sq_configure使用OLE自動化過程,從SQL服務器發送HTTP請求,就像無法在遠程SQL Server

sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
sp_configure 'Ole Automation Procedures', 1; 
GO 
RECONFIGURE; 
GO 

,然後我叫建立一個HTTP_REQUEST存儲過程如下圖所示

使用sp_configure
CREATE procedure HTTP_Request(@sUrl varchar(200)) 
As 

Declare 
@obj int 
,@hr int 
,@msg varchar(255) 

exec @hr = sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT 
if @hr <> 0 begin Raiserror('sp_OACreate MSXML2.ServerXMLHttp.3.0 
failed', 16,1) return end 

exec @hr = sp_OAMethod @obj, 'open', NULL, 'POST', @sUrl, false 
if @hr <>0 begin set @msg = 'sp_OAMethod Open failed' goto eh end 

exec @hr = sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 
'application/x-www-form-urlencoded' 
if @hr <>0 begin set @msg = 'sp_OAMethod setRequestHeader failed' goto 
eh end 

exec @hr = sp_OAMethod @obj, send, NULL, '' 
if @hr <>0 begin set @msg = 'sp_OAMethod Send failed' goto eh end 

exec @hr = sp_OADestroy @obj 
return 
eh: 
exec @hr = sp_OADestroy @obj 
Raiserror(@msg, 16, 1) 
return 
GO 

,我調用的存儲過程作爲

USE [master] 
GO 

DECLARE @return_value int 

EXEC @return_value = [dbo].[HTTP_Request] 
@sUrl = N'url' 

SELECT 'Return Value' = @return_value 

GO 

這是工作在沒事y本地sql服務器,我可以從數據庫發送http請求。

現在我的問題是我訪問遠程SQL Server,我想用同樣的事情,我在本地系統中做了,但是當我嘗試執行sp_configure我不能。我得到了錯誤的

找不到存儲過程 'sp_configure的'

什麼想法? 訪問限制是否存在此問題?

+0

這是在SQL Azure/Windows Azure SQL數據庫上運行的「遠程SQL Server」嗎? –

+0

這是我的遠程數據庫版本:微軟SQL Azure的(RTM) - 11.0.9099.37 \t 2013年7月5日23時16分50秒 \t版權所有(c)Microsoft公司 – niren

回答

3

不能在WASD運行sp_configure,對不起。即使可以,您也無法調用OA方法。您需要找到另一種方式打擊您的網頁(例如,從您的應用程序中而不是從存儲過程中打開它 - 無論如何它應該發生)。

+0

我應該創建什麼應用程序來實現我的要求?看到我的[前面的問題(http://stackoverflow.com/questions/17407338/how-can-i-make-http-request-from-sql-server) – niren

+1

@niren好了,你可以使用PowerShell,喜歡你的答案那裏,或C#,或 - 我不知道 - 無論你擅長什麼。但是,如果您使用WASD,您將無法在* SQL Server上託管它。也許您應該使用Windows Azure虛擬機,您可以在其中運行適當的(非WASD)SQL Server以及您需要的任何其他應用程序或腳本。 –

+0

通常我無權選擇使用哪個遠程數據庫,我的公司已經使用Microsoft SQL Azure(RTM)。現在他們已經創建了一個登錄供我使用,所以我需要在給定的數據庫中運行我的應用程序。有沒有其他方式來我的應用程序工作?正如你所知,我不能在遠程SQL服務器中使用Power Shell。 – niren