T-SQL笔记6:GO
T-SQL筆記6:GO
本章摘要:無
?
???? GO向 SQL Server 實用工具發(fā)出一批 Transact-SQL 語句結(jié)束的信號。
???? 語法:GO [count]
count為一個正整數(shù)。GO 之前的批處理將執(zhí)行指定的次數(shù)。
????? GO 不是 Transact-SQL 語句;它是可由 sqlcmd 和 osql 實用工具以及 SQL Server Management Studio 代碼編輯器識別的命令。
????? SQL Server 實用工具將 GO 解釋為應(yīng)該向 SQL Server 實例發(fā)送當(dāng)前批 Transact-SQL 語句的信號。當(dāng)前批語句由上一 GO 命令后輸入的所有語句組成,如果是第一條 GO 命令,則由即席會話或腳本開始后輸入的所有語句組成。
????? GO 命令和 Transact-SQL 語句不能在同一行中。但在 GO 命令行中可包含注釋。
????? 用戶必須遵照使用批處理的規(guī)則。例如,在批處理中的第一條語句后執(zhí)行任何存儲過程必須包含 EXECUTE 關(guān)鍵字。局部(用戶定義)變量的作用域限制在一個批處理中,不可在 GO 命令后引用。
USE AdventureWorks2008R2; GO DECLARE @MyMsg VARCHAR(50) SELECT @MyMsg = 'Hello, World.' GO -- @MyMsg is not valid after this GO ends the batch.-- Yields an error because @MyMsg not declared in this batch. PRINT @MyMsg GOSELECT @@VERSION; -- Yields an error: Must be EXEC sp_who if not first statement in -- batch. sp_who GO
????? SQL Server 應(yīng)用程序可以將多個 Transact-SQL 語句作為一個批發(fā)送到 SQL Server 的實例來執(zhí)行。然后,該批中的語句被編譯成一個執(zhí)行計劃。程序員在 SQL Server 實用工具中執(zhí)行特殊語句,或生成 Transact-SQL 語句的腳本在 SQL Server 實用工具中運行時,使用 GO 作為批結(jié)束的信號。
????? 如果基于 ODBC 或 OLE DB API 的應(yīng)用程序試圖執(zhí)行 GO 命令,會收到語法錯誤。SQL Server 實用工具從不向服務(wù)器發(fā)送 GO 命令。
?
示例:
???? 以下示例創(chuàng)建兩個批。第一個批只包含一條 USE AdventureWorks2008R2 語句,用于設(shè)置數(shù)據(jù)庫上下文。其余的語句使用局部變量。因此,所有局部變量聲明必須組成一個批。為此,必須在最后一條引用此變量的語句之后才使用 GO 命令。
?
USE AdventureWorks2008R2; GO DECLARE @NmbrPeople int SELECT @NmbrPeople = COUNT(*) FROM Person.Person; PRINT 'The number of people as of ' +CAST(GETDATE() AS char(20)) + ' is ' +CAST(@NmbrPeople AS char (10)); GO 超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的T-SQL笔记6:GO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件和目录操作函数
- 下一篇: 去除重复数据的SQL语句