2013-01-14 191 views
7

我一直試圖設置一個計劃來在Windows任務計劃程序中每小時運行一次存儲過程(因爲我正在使用SQL Express並且無法安裝第三方工具),但嘗試各種方法後,如從任務計劃程序運行.bat文件,從任務計劃程序打開SqlCmd實用程序並傳遞命令行語法或.sql腳本文件,我都沒有運氣。使用Windows任務計劃程序執行存儲過程

我知道這可以做到,因此我確信這是我錯過的東西,但如果任何人都可以分享他們的經驗,我會非常感激。

非常感謝

+1

使用sqlcmd看起來很合理。你爲什麼失敗了? –

+0

看起來很有用:http://stackoverflow.com/questions/3794897/need-help-to-write-bat-file-that-execute-sql-scripts-in-sql-server-2008-and-ano – sgeddes

+0

運行SQLCMD的.bat文件不起作用?給我們詳細信息。 – Mark

回答

9

如果您對SQL實例管理員(由於您使用的SQLExpress我敢打賭,你正在試圖做到這一點你自己的電腦上,以便有一個高的機會你的用戶是管理員sql實例),你不應該使用-E,只是忽略它。

其次,即使你在本地工作,也要指定服務器。

開始用一個簡單的SQL命令象下面這樣:

sqlcmd.exe -S 「」 -d MY_DATABASE -Q「SELECT * FROM MY_TABLE」

用您的dbname和表名替換MY_DATABASE和MY_TABLE。確保你可以從命令行運行它。它應該從你的表中返回數據。 (小心命令行選項區分大小寫,因此與S不同)

最後,不要試圖通過任務調度程序提供參數。將所有參數的命令放在.bat文件中,並從任務計劃程序運行批處理。

+0

不,我已經遠程連接到SQL服務器所在的機器,而不是嘗試在本地執行此操作。 我會試一試,但關於批處理文件 - 該文件將如何查看? – richardterris

+1

默認情況下,SQLExpress被配置爲拒絕遠程連接。你確定你可以連接到你的機器上的遠程SQLExpress嗎?可以使用Management Studio進行嘗試,例如 –

+0

是的,我可以從我自己的機器上的管理工作室連接到它 – richardterris

-1

我最近有類似的問題,我的經驗可能會幫助你。我從一個批處理文件調用一個小應用程序,即EXE。我正在安排批處理文件從Windows任務計劃程序運行。該應用程序正在使用Windows身份驗證訪問SQL數據。 我可以直接運行應用程序,即點擊EXE運行它。 我可以從批處理文件運行應用程序。 但是,如果我試圖運行計劃任務似乎開始,但什麼也沒做,並沒有發佈我能找到的錯誤。 我發現如果我將應用程序更改爲使用SQL身份驗證運行,它可以從任務計劃程序運行。

我懷疑當從Windows無法識別的任務計劃程序運行Windows身份驗證時,會出現一些有關Windows身份驗證的上下文。

相關問題