要使用sqlcmd,請打開命令提示符後輸入sqlcmd。
當運行sqlcmd實用工具,可以使用以下參數,
用法: 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 禁用變量情況]
[-? 顯示語法摘要]
最常用的選項如下:
服務器選項(-S),用於標識 sqlcmd 連接到的 Microsoft SQL Server 實例。
身份驗證選項(-E、-U 和 -P),用於指定 sqlcmd 連接到 SQL Server 實例所使用的憑據。
注意:
-E 選項為默認選項,毋須指定。
輸入選項(-Q、-q 和 -i),用於標識 sqlcmd 輸入的位置。
輸出選項(-o),用於指定 sqlcmd 輸出所在的文件。
以下是 sqlcmd 實用工具的常見用法:
使用 Windows 身份驗證連接到默認實例,以交互方式運行 Transact-SQL 語句:
sqlcmd -S <ComputerName>
注意:
上述示例中,未指定 -E,因為它是默認選項,而且 sqlcmd 使用 Windows 身份驗證連接到默認實例。
使用 Windows 身份驗證連接到命名實例,以交互方式運行 Transact-SQL 語句:
sqlcmd -S <ComputerName>\<InstanceName>
或者
sqlcmd -S .\<InstanceName>
使用 Windows 身份驗證連接到命名實例,並指定輸入和輸出文件:
sqlcmd -S <ComputerName>\<InstanceName> -i <MyScript.sql> -o <MyOutput.rpt>
使用 Windows 身份驗證連接到本地計算機上的默認實例,執行查詢,並在查詢運行完畢後使 sqlcmd 保持運行狀態:
sqlcmd -q "SELECT * FROM AdventureWorks.Person.Contact"
使用 Windows 身份驗證連接到本地計算機上的默認實例,執行查詢,將輸出定向到某個文件,並在查詢運行完畢後使 sqlcmd 退出:
sqlcmd -Q "SELECT * FROM AdventureWorks.Person.Contact" -o MyOutput.txt
使用 SQL Server 身份驗證連接到命名實例,以交互方式運行 Transact-SQL 語句,並由 sqlcmd 提示輸入密碼:
sqlcmd -U MyLogin -S <ComputerName>\<InstanceName>
注意:
若要查看 sqlcmd 實用工具所支持選項的列表,請運行:sqlcmd -?。
使用 sqlcmd 以交互方式運行 Transact-SQL 語句
您可以使用 sqlcmd 實用工具以交互方式在命令提示符窗口中執行 Transact-SQL 語句。若要使用 sqlcmd 以交互方式執行 Transact-SQL 語句,請在未使用 -Q、-q、-Z 或 -i 選項指定任何輸入文件或查詢的情況下運行實用工具。例如:
sqlcmd -S <ComputerName>\<InstanceName>
在未指定輸入文件或查詢的情況下執行命令時,sqlcmd 連接到 SQL Server 的指定實例,然後顯示一個新行,其中包含 1> 並且後面跟著一個閃爍的下劃線(稱為 sqlcmd 提示符)。1 表示這是 Transact-SQL 語句的第一行,而 sqlcmd 提示符則是您鍵入 Transact-SQL 語句的起點。
在 sqlcmd 提示符中,可以鍵入 Transact-SQL 語句和 sqlcmd 命令,如 GO 和 EXIT。每個 Transact-SQL 語句放在稱為“語句緩存”的緩沖區中。鍵入 GO 命令並按 Enter 鍵後,這些語句將發送到 SQL Server。若要退出 sqlcmd,請在新行開始處鍵入 EXIT 或 QUIT。
若要清除語句緩存,請鍵入 :RESET。鍵入 ^C 將使 sqlcmd 退出。在發出 GO 命令後,還可以用 ^C 停止語句緩存的執行。
通過在 sqlcmd 提示符中輸入 :ED 命令,可以編輯交互式會話中輸入的 Transact-SQL 語句。編輯器將打開,編輯 Transact-SQL 語句並關閉編輯器後,修改後的 Transact-SQL 語句將顯示於命令窗口中。輸入 GO 以運行修改後的 語句。
帶引號的字符串
用引號引起來的字符無需任何額外的預處理即可使用。例外,輸入兩個連續的引號可以將引號插入字符串中,SQL Server 將這種字符序列視作一個引號。(但在服務器上會進行轉換。)當腳本變量出現在字符串中時,不會展開它們。
例如:
sqlcmd
PRINT "Length: 5"" 7'"
GO
下面是結果集:
Length: 5" 7'
跨多行的字符串
sqlcmd 支持包含跨多行的字符串的腳本。例如,下面的 SELECT 語句跨多行,但鍵入 GO 並按 Enter 鍵後,將執行單個字符串。
SELECT First line
FROM Second line
WHERE Third line
GO
交互式 sqlcmd 示例
本示例說明了以交互方式運行 sqlcmd 的過程。
打開命令提示符窗口時,出現如下一行內容:
C:\> _
這表示文件夾 C:\ 為當前文件夾,如果您指定文件名,則 Windows 將在此文件夾中查找這個文件。