共用方式為


在 Transact-SQL 編輯器中編輯 SQLCMD 指令碼

更新:2007 年 11 月

當您在 Transact-SQL (T-SQL) 編輯器中撰寫或編輯指令碼時,如果先啟用 SQLCMD 模式,就可以混合使用 T-SQL 和 SQLCMD 命令。如需詳細資訊,請參閱 HOW TO:在 Transact-SQL 編輯器中啟用 SQLCMD 模式

撰寫和編輯 SQLCMD 指令碼

如果要在相同指令碼中包含 SQLCMD 命令和 T-SQL 命令,必須確定指令碼符合下列要求:

  • SQLCMD 命令必須是一行中的第一個陳述式。

  • 每行不能有一個以上的 SQLCMD 命令。

  • SQLCMD 命令前面可以加上註解或空格。

  • 您可以使用註解字元,防止 SQLCMD 命令執行。

  • 一行的開頭必須使用兩個連字號,以形成單行註解字元。

  • 每個 SQLCMD 命令前面必須加上冒號,以與 T-SQL 命令清楚區別。

  • 您可以使用環境變數和定義為 SQLCMD 指令碼一部分的變數,但不能使用內建 SQLCMD 變數。

使用 SQLCMD 語法

您可以使用下列命令:

  • :r FileName
    從 FileName 指定的檔案,將其他 T-SQL 陳述式和 SQLCMD 命令剖析到陳述式快取中。FileName 會從 Visual Studio 的相對啟動目錄讀取。檔案會在遇到批次結束字元之後讀取和執行。您可以發出多個 :r 命令。檔案可以包含任何 SQLCMD 命令,包括在 [工具] 的 [選項] 中定義的批次結束字元。您可以在預先部署或部署後指令碼中使用 :r,以包含其他指令碼。

  • :setvar Variable Value
    定義指令碼變數。指令碼變數的格式如下:$(Variable)。變數名稱不區分大小寫。如果使用 :Setvar 定義的變數與環境變數同名,則使用 :setvar 定義的變數會取得優先權。變數名稱不能包含空格字元。變數名稱的形式不能與變數運算式相同,例如 $(var)。如果指令碼變數的字串值包含空格,這個值必須用引號括住。如果指令碼變數沒有指定值,則會卸除該指令碼變數。

  • :connect ServerName[\InstanceName] [-l Timeout] [-U UserName [-P Password]]
    會連接到 Microsoft SQL Server 的執行個體,並在 Timeout 指定的秒數過後關閉目前的連接。您可以指定 "-l 0" 代表無限逾時,或指定正值秒數,例如 "-l 30"。如果沒有為 UserName 和 Password 提供選項或環境變數,就會使用 Windows 驗證模式登入。

  • :on error [exit | ignore]
    設定指令碼或批次執行期間發生錯誤期間要執行的動作。如果使用 exit 選項,執行就會結束並顯示適當的錯誤值。如果使用 ignore 選項,T-SQL 編輯器會忽略錯誤並繼續執行批次或指令碼。預設會顯示錯誤訊息。

  • :listvar
    顯示目前設定的指令碼變數清單。只有在目前工作階段的 SQLCMD 模式下設定的指令碼變數才會顯示。

  • :exit
    停止目前批次,而不執行批次或傳回任何值。

  • :exit()
    執行批次然後停止,不傳回任何值。

  • :exit(Query)
    執行批次 (包括 Query),接著傳回 Query 的結果後停止。

範例

若要使用整合式安全性連接到 SQL Server myserver 的執行個體 instance1,請使用下列命令:

:connect myserver\instance1.

若要使用指令碼變數連接到 myserver 的預設執行個體,請使用下列命令:

:setvar myusername test

:setvar myservername myserver

:connect $(myservername) $(myusername)

若要執行 C:\Files 下儲存在 selectFromTable.sql 檔案中的簡單查詢,請使用下列命令:

:SETVAR tablevar Suppliers

:r C:\Files\selectFromTable.sql

GO

:SETVAR tablevar Customers

:r C:\Files\selectFromTable.sql

GO

selectFromTable.sql 檔案包含下列範例查詢:

SELECT * FROM $(tablevar)

GO

請參閱

工作

HOW TO:執行查詢

HOW TO:設定查詢執行和結果的選項

概念

查詢結果概觀