簡體   English   中英

從SQL Server中的存儲過程調用URL?

[英]Calling a URL from a stored procedure in SQL Server?

只是想知道是否可以從存儲過程調用URL(最終將該過程添加到sql作業)當網頁刷新我的數據庫時,如果我可以自動執行此過程,那將是非常好的。

編輯:

我希望能夠通過商店程序請求網頁。 在所需網頁的頁面加載上,有一個刷新我的數據庫的功能。 我希望它每天凌晨4點刷新我的數據庫。 為了讓我不要在凌晨4點手動上網(還在睡覺),我需要別的東西給我做。 我認為sql工作會非常好,因為我可以設置時間和工作。 我不太了解PowerShell,並且想知道我是否可以請求URL,或者使用存儲過程或任何其他方式訪問URL。

我很確定MS SQL不允許你直接這樣做..明顯的安全問題。 但是,我認為您可以通過使用xp_cmdshell執行vbscript文件來解決它,並在該文件中創建對站點的xmlhttp請求。

xp_cmdshell命令:

EXEC master..xp_cmdshell 'c:\<file>.vbs',no_output  

VBScript中:

call main()
sub main()
    Dim xmlHTTP, url
    Set xmlHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
    url = "<url>"
    xmlHTTP.Open "GET", url, False
    xmlHTTP.Send  ""
end sub 

編輯

回應關於如何異步執行此操作的注釋。

xp_cmdshell命令:

EXEC master..xp_cmdshell 'c:\caller.vbs',no_output

調用者的VBScript:

call main()
sub main()
    Dim scmd
    Set scmd = "c:\windows\system32\cscript.exe //nologo c:\<originalVBS>.vbs"
    createobject("wscript.shell").run scmd,0,false
end sub

@newurl是你要點擊的網址@response是你收到的回復

EXEC Sp_oacreate  'MSXML2.XMLHTTP',@obj OUT;
EXEC Sp_oamethod @obj,'open',NULL,'get',@newurl,'false'
EXEC Sp_oamethod @obj,'send'
EXEC Sp_oamethod @obj,'responseText',@response OUTPUT   
EXEC Sp_oadestroy @obj

您可以使用任務計划程序(Windows的一部分)執行此操作。 只需創建一個打開Internet Explorer並瀏覽到該頁面的計划任務:

"C:\Program Files\Internet Explorer\iexplore.exe" "http://yoursite.com/yourpage.aspx"

或者對於64位Windows:

"C:\Program Files (x86)\Internet Explorer\iexplore.exe" "http://yoursite.com/yourpage.aspx"

或者,使用SQL Server代理創建作業,並使用上述命令創建“操作系統(CmdExec)”類型的單個步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM