使用 sqlcmd 公用程式 (SQL Server Express)

您可以從命令提示字元使用 sqlcmd 公用程式來管理您的 Microsoft SQL Server 2008 Express (SQL Server Express) 資料庫。若要存取 sqlcmd 公用程式,請按一下 [開始],再按一下 [執行],然後輸入 sqlcmd.exe。

SQLCMD 語法

您可以在執行 sqlcmd 時使用下列引數。如需有關特定引數的詳細資訊,請參閱《SQL Server 線上叢書》中的<sqlcmd 公用程式>和<教學課程:sqlcmd 公用程式>。

Sqlcmd
  [-U login id] [-P password] [-S server] [-H hostname] 
  [-E trusted connection] [-d use database name] [-l login timeout]
  [-N encrypt connection] [-C trust the server certificate]
  [-t query timeout] [-h headers] [-s colseparator] [-w screen width]
  [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
  [-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"]
  [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel]
  [-W remove trailing spaces] [-u unicode output]
  [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile]
  [-f <codepage> | i:<codepage>[,o:<codepage>]]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting] [-b On error batch abort]
  [-v var = "value"...]
  [-X[1] disable commands[and exit with warning]]
  [-? show syntax summary]

SQLCMD 命令

下表提供可從 sqlcmd 公用程式使用的命令概觀。如需有關這些命令的詳細資訊,請參閱《SQL Server 2008 線上叢書》中的<sqlcmd 公用程式>。

命令

描述

go [count]

執行任何快取的 Transact-SQL 陳述式。當指定 count 值時,會將快取的陳述式當做單一批次執行 count 次。例如,下列範例將會執行這兩個陳述式兩次:

1> Use MyDatabase
2> SELECT FirstName, LastName FROM Employee WHERE EmployeeID < 10
3> GO 2

-Nencrypt connection

這個參數是由用戶端用來要求加密的連接。這個選項相當於 ADO.net 選項 ENCRYPT = true。

-Ctrust the server certificate

這個參數是由用戶端所設定,以隱含方式信任伺服器憑證而且不進行驗證。這個選項相當於 ADO.net 選項 TRUSTSERVERCERTIFICATE = true。

reset

清除陳述式快取。

ed

可讓您編輯目前或上次執行的陳述式批次。若要編輯上次執行的批次,在上一個批次執行之後,必須立即輸入這個命令。

!! <命令>

執行作業系統命令。若要執行作業系統命令,請在行首輸入兩個驚歎號 (!!),後面再接著作業系統命令。例如,下列命令會執行目前磁碟機的目錄列表:

1> !! dir

quit

- 或 -

exit

立即結束 sqlcmd

exit [(statement)]

可讓您使用 SELECT 陳述式的結果做為 sqlcmd 的傳回值。

括弧之間沒有任何內容的 exit() 陳述式,會執行批次中在它前面的任何內容,之後,便結束作業,不傳回任何值。

您也可以將 exit 參數併入批次檔中。例如:

sqlcmd /Q "exit(SELECT COUNT(*) FROM '%1')"

:r <filename>

從 filename 所指定的檔案中,剖析 Transact-SQL 陳述式和 sqlcmd 命令,放在陳述式快取之中。在發出批次結束字元 (go) 之後,便會讀取並執行這個檔案。

:serverlist

列出在本機設定的伺服器,以及在網路中進行廣播的伺服器名稱。

:list

列印陳述式快取內容。

:listvar

顯示目前所設定之指令碼變數的清單。

:error <destination>[ filename | STDERR | STDOUT]

將所有錯誤輸出重新導向 filename 所指定的檔案、STDERR 資料流或 STDOUT 資料流。根據預設,錯誤輸出會傳送到 STDERR。

:out <destination>[ filename | STDERR | STDOUT ]

將所有查詢結果重新導向 filename 所指定的檔案、STDERR 資料流或 STDOUT 資料流。根據預設,輸出會傳送到 STDOUT。

:perftrace <destination>[ filename | STDERR | STDOUT ]

將所有效能追蹤資訊重新導向 filename 所指定的檔案、STDERR 資料流或 STDOUT 資料流。依預設,效能追蹤輸出會送往 STDOUT。

:connect server_name[\instance_name] [-t timeout] [-U username [-P password] ]

連接到 SQL Server 的執行個體並關閉目前的連線。

:on error [ exit | ignore ]

設定執行指令碼或批次發生錯誤時所要執行的動作。

使用 exit 選項時,sqlcmd 會結束作業,並且出現適當的錯誤值。

當使用 ignore 選項時,sqlcmd 會略過錯誤,繼續執行批次或指令碼。依預設,會列印一則錯誤訊息。

:help

列出 sqlcmd 命令及各命令的簡單描述。

連接 SQL Server Express

連接到 SQL Server Express 伺服器時,您必須指定伺服器名稱,而如果 SQL Server Express 安裝在具名執行個體上,您還必須指定執行個體名稱。根據預設,sqlcmd 會使用 Windows 驗證。如果要使用 SQL Server 驗證來連接 SQL Server Express 伺服器,您還必須提供連接到 SQL Server Express 伺服器的登入資訊。例如,如果要連接名稱為 server1 之伺服器上的 SQL Server Express 預設安裝,您可以使用下列引數:

sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword

[!附註]

如果使用 -P 引數,您的密碼會在命令提示字元中以純文字格式顯示。如果省略 -P 引數,您便會收到輸入密碼的提示。系統將會隱藏您所輸入的文字。

如果您用來登入的使用者帳戶受到執行 SQL Server Express 的伺服器所信任,便可省略 -U 和 -P 引數:

sqlcmd -S server1\SQLExpress

[!附註]

-E 引數指定信任連接。這是 sqlcmd 的預設值,因此可以省略 -E 引數。

範例

下列範例顯示如何使用 sqlcmd 公用程式來連接 SqlServer1 伺服器上名為 SqlExpress 的 SQL Server Express 執行個體:

Sqlcmd -S SqlServer1\SqlExpress

連接完成之後,您可以發出其他命令來管理執行個體。例如,下列命令將顯示目前已安裝的所有資料庫。這是一種便利的方式,可讓您找出附加的 SQL Server Express 資料庫之邏輯名稱:

SELECT name from sys.databases
Go

sp_configure 系統預存程序

您可以使用 sp_configure 系統預存程序,透過組態選項來管理及最佳化 SQL Server Express 資源。如需有關 sp_configure 的詳細資訊,請參閱《SQL Server 線上叢書》中的<設定伺服器組態選項>。

下列組態選項是 sp_configure 的一部分,但不受 SQL Server Express 支援:

  • Agent XPs

  • Database Mail XPs

  • SQL Mail XPs

  • Web Assistant Procedures