天天看點

MS SQL批量生成作業腳本方法介紹總結

在遷移或更新SQL Server資料庫伺服器時,很多場景下我們不能還原msdb,是以我們必須手工遷移SQL Server相關作業。如果手工生成每一個作業的腳本話,費時又費力,其實SQL Server中有好幾種方法可以批量生成作業腳本的方法, 下面介紹一下。

1:SSMS用戶端工具批量生成建立作業腳本

1:在SSMS—>SQL Server Agent下,單擊Jobs。

2: 按快捷鍵F7,在Object Explorer Details裡面,你會看到所有的作業

3: 全選所有作業(CTRL+A),然後右鍵單擊“Script Job as”,然後選項“CREATE TO"就會生成所有作業的腳本。

MS SQL批量生成作業腳本方法介紹總結

這個方法其實是非常簡潔友善的。不足之處就是所有作業的腳本位于同一個Script,沒有按作業名生成相關對應的腳本。

2:使用PowerShell腳本生成所有作業的腳本

有一個現成的PowerShell腳本,相關介紹以及腳本下載下傳具體參考下面連結:

https://gallery.technet.microsoft.com/scriptcenter/How-to-get-the-of-all-the-81859696

PS C:\Users> M:\GetJobScripts\GetAllAgentJobs.ps1

cmdlet GetAllAgentJobs.ps1 at command pipeline position 1

Supply values for the following parameters:

ServerName: YourServerName

FilePath: M:\GetJobScripts

Scripting out  xxxxxxxxxxxx  successfully!

.........................................

使用該PowerShell腳本可以生成各個作業的各自腳本。非常簡潔友善。不過該腳本要求Windows PowerShell 2.0或更高的版本,另外,有些平台是沒有測試過的,需要參考上面連結說明。 GetAllAgentJobs.ps1的腳本如下:

方法3:通過SqlDmo元件相關函數生成資料庫對象腳本,不過有些版本由于沒有安裝"Backward Compatibility Components" 導緻該腳本不能建立相關腳本檔案,個人測試時也遇到不少問題,有興趣可以試試。

http://www.databasejournal.com/features/mssql/article.php/2205291/Generate-Scripts-for-SQL-Server-Objects.htm

參考資料:

https://stackoverflow.com/questions/3361163/automatically-create-scripts-for-all-sql-server-jobs

<a href="http://www.databasejournal.com/features/mssql/article.php/2205291/Generate-Scripts-for-SQL-Server-Objects.htm">http://www.databasejournal.com/features/mssql/article.php/2205291/Generate-Scripts-for-SQL-Server-Objects.htm</a>