2014-04-09 55 views
1

我一直在開發一個應用程序,通過從SQL Server中讀取來在網站上顯示圖形。由於一些表格非常大,我的SQL腳本需要幾分鐘才能執行,所以我設計了一個計劃,通過每月執行一項工作來解決這個問題。我有我的T-SQL腳本來處理數據和其他腳本來創建和顯示圖形,因此難以完成。我遇到的問題是在SQL Server 2005中創建一個預定作業(因爲它是一臺工作計算機而無法升級)。SQL Server作業調度和PHP

我一直有很大的麻煩,因爲它似乎我沒有安裝必要的存儲過程來創建一個工作或時間表。例如,當我跑:

USE TEST1 ; 
GO 
EXEC sp_add_job 
@job_name = N'MY_FIRST_JOB2' ; 
GO 
EXEC sp_add_jobstep 
@job_name = N'MY_FIRST_JOB2', 
@step_name = N'Set database to read only', 
@subsystem = N'TSQL', 
@command = N'SELECT * FROM [TEST1].[dbo].[BACK1]', 
@retry_attempts = 5, 
@retry_interval = 5 ; 
GO 

我收到錯誤稱的存儲過程sp_add_job和SP_ADD_JOBSTEP找不到。我試圖在存儲過程之前放置[dbo],但它沒有幫助。當我檢查了我的可編程性 - >存儲過程 - >系統存儲過程文件夾時,有很多但沒有任何作業或調度!有趣的是,當我跑

SELECT * FROM [sys].[procedures]; 

我什麼也沒有,除了列標題之外沒有一行。

當我嘗試在SQL Server代理中使用接口時,我能夠創建一個作業並設置時間表,但它沒有執行。當我打開作業時,最後執行的框不會始終更新,即使它應該已經執行。此外,在查看歷史記錄/日誌中,出於不同的原因,出現了幾次我的嘗試(全部出錯),其中一些原因是即使將用戶設置爲NT AUTHORITY \ SYSTEM也是允許的。

這使我2個問題:

1)有沒有一種方法,我可以下載這些存儲過程?

2)有沒有其他辦法可以做到這一點?我有權訪問SQLExpress,但由於它沒有調度和SQL Server代理,我選擇了並選擇了更簡單的路由。

我一直在這裏一段時間,並在智慧結束。

+0

經過一番google搜索和閱讀在這裏,我發現很多人推薦的SQL調度。它在第一次嘗試中工作,所以我堅持使用我的SQL Express。我仍然難以理解爲什麼我的帶有SQL Server Agent的完整SQL Server缺少一些存儲過程,但我猜我必須要求重新安裝它或稍後解決它。 – user3515944

回答

0

問題是您引用的存儲過程不是數據庫的一部分。所有與作業相關的系統存儲過程都位於msdb數據庫中。

適當調用的一個例子是:

EXEC msdb.dbo.sp_add_job @job_name = N'MY_FIRST_JOB2';