您可以使用 sqlcmd 實用工具(Microsoft Win32 命令提示實用工具)來運行特殊的 Transact-SQL 語句和腳本。若要以交互方式使用 sqlcmd,或要生成可使用 sqlcmd 來運行的腳本文件,則需要了解 Transact-SQL。通常以下列方式使用 sqlcmd 實用工具:
在 sqlcmd 環境中,以交互的方式輸入 Transact-SQL 語句,輸入方式與在命令提示符下輸入的方式相同。命令提示符窗口中會顯示結果(選擇其他方式除外)。本教程的後面部分將講述如何將結果集發送給輸出文件。
您可以通過下列方式提交 sqlcmd 作業:指定要執行的單個 Transact-SQL 語句,或將實用工具指向包含要執行的 Transact-SQL 語句的腳本文件。
一、啟動 sqlcmd 實用工具並連接到 SQL Server 的默認實例
1、單擊“開始”,依次指向“所有程序”、“附件”,再單擊“命令提示符”。閃爍的下劃線字符即為命令提示符。
2、在命令提示符處,鍵入 sqlcmd。
3、按 ENTER 鍵。
1> 是 sqlcmd 提示符,可以指定行號。每按一次 Enter 鍵,顯示的數字就會加 1。
現在,您已使用可信連接連接到計算機上運行的默認 SQL Server 實例。
若要終止 sqlcmd 會話,請在 sqlcmd 提示符處鍵入 EXIT。
若要使用 sqlcmd 連接到名為 myServer 的 SQL Server 命名實例,必須使用 -S 選項啟動 sqlcmd。
二、使用 sqlcmd 連接到 SQL Server 的命名實例
1、打開命令提示符窗口,鍵入 sqlcmd -S myServer
2、按 ENTER 鍵。
注意:
Windows 身份驗證是默認的身份驗證。若要使用 SQL Server 身份驗證,您必須使用 -U 和 -P 選項指定用戶名和密碼。
此時將顯示 sqlcmd 提示符。現在,您已連接到名為 myServer 的 SQL Server 實例。
注意:
請使用要連接的 SQL Server 實例名稱替換上述步驟 1 中的 myServer。如我現在鍵入的是:localhost\luoxs
三、使用 sqlcmd 運行 Transact-SQL 腳本文件
使用 sqlcmd 連接到 Microsoft SQL Server 的命名實例之後,下一步便是創建 Transact-SQL 腳本文件。Transact-SQL 腳本文件是一個文本文件,它可以包含 Transact-SQL 語句、sqlcmd 命令以及腳本變量的組合。
若要使用記事本創建一個簡單的 Transact-SQL 腳本文件,請執行下列操作:
1、單擊“開始”,依次指向“所有程序”、“附件”,再單擊“記事本”。
2、復制以下 Transact-SQL 代碼並將其粘貼到記事本:
3、 復制代碼
USE AdventureWorks
GO
SELECT c.FirstName + ' ' + c.LastName AS 'Employee Name',
a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode
FROM Person.Contact AS c
INNER JOIN HumanResources.Employee AS e
ON c.ContactID = e.ContactID
INNER JOIN HumanResources.EmployeeAddress ea ON
ea.EmployeeID = e.EmployeeID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
GO
4、在 C 驅動器中將文件保存為 myScript.sql。
運行腳本文件
打開命令提示符窗口。
1、命令提示符窗口中,鍵入 sqlcmd -S myServer -i C:\myScript.sql。
2、按 Enter 鍵。
AdventureWorks 員工的姓名和地址列表便會輸出到命令提示符窗口。
將此輸出保存到文本文件中
1、打開命令提示符窗口。
2、在命令提示符窗口中,鍵入 sqlcmd -S myServer -i C:\myScript.sql -o C:\EmpAdds.txt。
3、按 Enter。
命令提示符窗口中不會生成任何輸出,而是將輸出發送到 EmpAdds.txt 文件。您可以打開 EmpAdds.txt 文件來查看此輸出操作。
四、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 禁用變量情況]
[-? 顯示語法摘要]