天天看點

T-SQL筆記6:GO

T-SQL筆記6:GO

本章摘要:無

     GO向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信号。

     文法:GO [count]

<dl></dl>

<dt>count</dt>

<dd></dd>

為一個正整數。GO 之前的批處理将執行指定的次數。

      GO 不是 Transact-SQL 語句;它是可由 sqlcmd 和 osql 實用工具以及 SQL Server Management Studio 代碼編輯器識别的指令。

      SQL Server 實用工具将 GO 解釋為應該向 SQL Server 執行個體發送目前批 Transact-SQL 語句的信号。目前批語句由上一 GO 指令後輸入的所有語句組成,如果是第一條 GO 指令,則由即席會話或腳本開始後輸入的所有語句組成。

      GO 指令和 Transact-SQL 語句不能在同一行中。但在 GO 指令行中可包含注釋。

      使用者必須遵照使用批處理的規則。例如,在批進行中的第一條語句後執行任何存儲過程必須包含 EXECUTE 關鍵字。局部(使用者定義)變量的作用域限制在一個批進行中,不可在 GO 指令後引用。

      SQL Server 應用程式可以将多個 Transact-SQL 語句作為一個批發送到 SQL Server 的執行個體來執行。然後,該批中的語句被編譯成一個執行計劃。程式員在 SQL Server 實用工具中執行特殊語句,或生成 Transact-SQL 語句的腳本在 SQL Server 實用工具中運作時,使用 GO 作為批結束的信号。

      如果基于 ODBC 或 OLE DB API 的應用程式試圖執行 GO 指令,會收到文法錯誤。SQL Server 實用工具從不向伺服器發送 GO 指令。

示例:

     以下示例建立兩個批。第一個批隻包含一條 <code>USE</code> <code>AdventureWorks2008R2</code> 語句,用于設定資料庫上下文。其餘的語句使用局部變量。是以,所有局部變量聲明必須組成一個批。為此,必須在最後一條引用此變量的語句之後才使用 <code>GO</code> 指令。