2009年12月15日 星期二

MSSQL 2008 - 認識sqlcmd

Standard
透過sqlcmd command line指令,可以達到程式化部署系統、某些例行性批次作業需要在每天下班後進行(如資料轉檔),常見做法是先將T-SQL陳述式儲存為*.sql檔案,然後以作業系統的排程功能自動執行。換句話說,利用【sqlcmd公用程式】與SQL Server資料引擎溝通,可以讓使用者互動地執行T-SQL陳述式,或是指定T-SQL指令碼檔案,週期性在背景批次執行,一些日常營運維護的工作,將會需要此種方式完成。

各版本所提供的命令提式公用程式
sqlcmd.exe OLE-DB MSSQL2005、2008
osql.exe ODBC MSSQL 7、2000
isql.exe DL-Library MSSQL6.5

MSSQL2005、2008新增功能
  • 指令變數:在sqlcmd中利用 -v 選項或是setvar命令,使用自訂變數,動態存取系統的環
    境變數、伺服器端的資訊與回傳相關錯誤訊系等。
  • 管理者專用連線(Dedicated Administrator Connection;DAC):在sqlcmd利用 -A選項,允
    許資料庫管理者藉此專屬的通道,連線到伺服器上進行系統修復作業。

指令簡介

sqlcmd /? 顯示sqlcmd公用程式所支援的參數

sqlcmd -S Server_Name -U 登入帳號 -P 密碼 登入特定MSSQL Server指令

!!指令名稱 執行Windows作業系統命令 (ex: !!dir)

sqlcmd -i C:\script01.sql -o C:\Report01.txt 將script01.sql執行結果令存到Report01.txt檔

Exercise:使用變數進行T-SQL script的執行
script02.sql
USE $(db1)
GO
select $(c1)
FROM $(t1)
GO

從client端PC連入MSSQL Server執行script
sqlcmd -S TESTServer -U sa -P 123456 -i c:\script02.sql -o c:\report02.txt -v db1="Northwind" c1="name" t1="sys.tables"


網路資源
sqlcmd 公用程式(mssql2005線上叢書)
sqlcmd 公用程式(mssql2008線上叢書)

0 意見: