2011年1月14日 星期五

用SQLCMD命令行工具執行SQL查詢

該命令運行在命令提示符下,且必須安裝了SQLServer客戶端工具。
注意參數區分大小寫。

用法: Sqlcmd 參數
[-U 登錄 ID]
[-P 密碼]
[-S 服務器]
[-H 主機名]
[-E 可信連接]
[-d 使用數據庫名稱]
[-l 登錄超時值]
[-t 查詢超時值]
[-h 標題]
[-s 列分隔符]
[-w 屏幕寬度]
[-a 數據包大小]
[-e 回顯輸入]
[-I 允許帶引號的標識符]
[-c 命令結束]
[-L[c] 列出服務器[清除輸出]]
[-q "命令行查詢"]
[-Q "命令行查詢" 並退出]
[-m 錯誤級別]
[-V 嚴重級別]
[-W 刪除尾隨空格]
[-u unicode 輸出]
[-r[0|1] 發送到 stderr 的消息]
[-i 輸入文件]
[-o 輸出文件]
[-z 新密碼]
[-f <代碼頁> | i:<代碼頁>[,o:<代碼頁>]]
[-Z 新建密碼並退出]
[-k[1|2] 刪除[替換]控制字符]
[-y 可變長度類型顯示寬度]
[-Y 固定長度類型顯示寬度]
[-p[1] 打印統計信息[冒號格式]]
[-R 使用客戶端區域設置]
[-b 出錯時中止批處理]
[-v 變量 = "值"...]
[-A 專用管理連接]
[-X[1] 禁用命令、啟動腳本、環境變量[並退出]]
[-x 禁用變量情況]
[-? 顯示語法摘要]

下面是一個執行sql語句文件進行創建數據庫、創建表、輸入測試數據的批處理。


「::」是批處理文件的一種註釋語法,由兩個半角英文冒號組成
「echo」是輸出字符串到屏幕
「@echo off」是關閉「執行時輸出命令語句到屏幕」
其他說明請看「::」後面的註釋

@echo off
echo ************** 執行SQL數據庫環境配置 ****************
echo.
echo _____________________________________________________
echo ------------------ 啟動SQL2005服務 ------------------
::如果沒有啟動sql服務,會先啟動sql服務。「$」後面的是數據庫實例名
net start mssql$sql2005
echo _____________________________________________________
echo.
echo _____________________________________________________
echo -------------- 執行T-SQL語句文件設置數據庫 ----------
:: 執行T-SQL語句文件請按照下面的格式寫

:: 第一種執行方式
:: 使用了Windows信任連接執行,
:: 「".\sql2005"」是「服務器\實例名」
:: 「"bbsDB_T-SQL\上機2.sql"」是輸入的SQL語句腳本文件存放物理路徑,可以是絕對路徑或相對本批處理文件路徑
sqlcmd -S ".\sql2005" -i "bbsDB_T-SQL\上機2.sql"

:: 第二種執行方式
:: 使用了SqlServer賬戶連接執行
:: 「".\sql2005"」是「服務器\實例名」
:: 「-U」後面的「sqlAdminName」是SQLSqlServer賬戶
:: 「-P」後面的「sqlAdminPwd」 是SQLSqlServer賬戶的密碼
:: 「"bbsDB_T-SQL\上機2.sql"」是輸入的SQL語句腳本文件存放物理路徑,可以是絕對路徑或相對本批處理文件路徑
sqlcmd -U sqlAdminName -P sqlAdminPwd -S ".\sql2005" -i "bbsDB_T-SQL\上機2.sql"
echo.
echo 任務執行完畢
:: 最後給個暫停命令,便於檢查是否出錯,不加的話,上面的執行完後不管是否出錯都會自動退出
pause

沒有留言:

張貼留言