星期五, 11月 07, 2014

[SQL] 利用 sqlcmd 來執行 T-SQL script

利用 sqlcmd 來執行 TSQL script,這個方法最廣泛的應用,莫過於在 SQL Express 排程備份資料庫
  • 遠端連線
要利用 sqlcmd 連接 SQL Server instance,必須先開啟 Express 版本的遠端連線(預設關閉)
  • T-SQL Script
在 Script 內下 T-SQL 語法來進行資料庫備份、交易紀錄備份,並設定好備份檔案名稱
DECLARE @date char(8) = CONVERT(char(8),getdate(),112)
DECLARE @bakpath varchar(100) = CONCAT('D:\AdventureWorks2012-',@date,'.bak')
BACKUP DATABASE [AdventureWorks2012] TO DISK = @bakpath
  • sqlcmd
參數說明:
  1. -S:指定要連接的 SQL Server 執行個體
  2. -i:識別包含 SQL 陳述式或預存程序的批次之檔案
在命令提示字元中測試,輸入
sqlcmd -S win7-jengting\sql2012 -i C:\TSQL.sql
執行畫面如下

[SQL] 利用 sqlcmd 來執行 T-SQL script-1
  • Windows 排程
新增 txt 檔案,內容為上述 sqlcmd 執行 TSQL 語法,輸入後把副檔名的 txt 改為 bat 檔案,並在 Windows 上設定排程來執行該 bat 檔案,重要步驟如下(下圖為 Win7 排程設定畫面)

Windows 7 工作排程 => 新增工作 => 一般 tag => 輸入排程名稱

[SQL] 利用 sqlcmd 來執行 T-SQL script-2

觸發程序 tag => 新增 button (觸發程序就是排程時間設定)

[SQL] 利用 sqlcmd 來執行 T-SQL script-3

動作 tag => 新增 button => 程式或指令碼,請選擇之前建立的 TSQLbat 檔案

[SQL] 利用 sqlcmd 來執行 T-SQL script-4

手動執行就可以看見備份出來的 bat 檔案

[SQL] 利用 sqlcmd 來執行 T-SQL script-5

沒有留言:

張貼留言