sql server中的go
1. 作用:
向 SQL Server 實(shí)用工具發(fā)出一批 Transact-SQL 語句結(jié)束的信號.
2. 語法:
一批 Transact-SQL 語句
GO
如
Select 1
Select 2
Select 3
GO
3. 說明:
1) GO 不是 Transact-SQL 語句;
2) 它是 sqlcmd 和 osql 實(shí)用工具以及 SQL Server Management Studio 代碼編輯器識別的命令.
3) SQL Server 應(yīng)用程序可以將多個(gè) Transact-SQL 語句作為一個(gè)批發(fā)送到 SQL Server 的實(shí)例來執(zhí)行.然后,該批中的語句被編譯成一個(gè)執(zhí)行計(jì)劃.程序員在 SQL Server 實(shí)用工具中執(zhí)行特殊語句,或生成 Transact-SQL 語句的腳本在 SQL Server 實(shí)用工具中運(yùn)行時(shí),使用 GO 作為批結(jié)束的信號.
4) 如果基于 ODBC 或 OLE DB API 的應(yīng)用程序試圖執(zhí)行 GO 命令,會收到語法錯(cuò)誤.SQL Server 實(shí)用工具從不向服務(wù)器發(fā)送 GO 命令.
4. 權(quán)限:
GO 是一個(gè)不需任何權(quán)限的實(shí)用工具命令.它可以由任何用戶執(zhí)行.
5. 用法:
1) SQL Server 實(shí)用工具將 GO 解釋為應(yīng)該向 SQL Server 實(shí)例發(fā)送當(dāng)前批 Transact-SQL 語句的信號.當(dāng)前批語句由上一 GO 命令后輸入的所有語句組成,如果是第一條 GO 命令,則由即席會話或腳本開始后輸入的所有語句組成.
SQL Server中g(shù)o語句使用注意事項(xiàng)
1、GO 命令和 Transact-SQL 語句不能在同一行中.但在 GO 命令行中可包含注釋
Select 1
GO
--會正確輸出結(jié)果,列名為”無列名”
Select 1 GO
--會正確輸出結(jié)果,列名為”GO”
--由此可知此處的GO并未起到應(yīng)有的作用;
2、用戶必須遵照使用批處理的規(guī)則.例如,在同一批處理中,創(chuàng)建數(shù)據(jù)庫之后不能直接使用其新建的數(shù)據(jù)庫
create database [Roc]
use [Roc]
GO
--運(yùn)行此批處理后,系統(tǒng)會報(bào)錯(cuò)
--把此批處理分成兩個(gè)批即可正確運(yùn)行
create database [Roc]
GO
use [Roc]
GO
?
3、局部(用戶定義)變量的作用域限制在一個(gè)批處理中,不可在 GO 命令后引用
?
declare @Roc varchar(max)
Select @Roc = 'aking'
GO
print @Roc
GO
--此為兩個(gè)批處理,由于局部變量的作用域要限制在一個(gè)批處理中,所以此語句錯(cuò)誤
--把這兩個(gè)批合并為一個(gè)批即可正確運(yùn)行
declare @Roc varchar(max)
Select @Roc = 'aking'
print @Roc
GO
?
4、每個(gè)被GO分隔的語句都是一個(gè)單獨(dú)的事務(wù),一個(gè)語句執(zhí)行失敗不會影響其它語句執(zhí)行
?
select * from sysobjects where id=a
select getdate()
--你會發(fā)現(xiàn)會報(bào)錯(cuò),并且不會顯示任何結(jié)果集
select * from sysobjects where id=a
go
select getdate()
go
--你會發(fā)現(xiàn)盡管同樣會報(bào)錯(cuò),但結(jié)果集中包含select getdate()的結(jié)果。
5、GO [count] count 為正整數(shù).指定GO 之前的批處理執(zhí)行指定的次數(shù)
?
insert [Roc] Select 'aking'
GO
--批處理執(zhí)行1次,向表Roc中插入一行記錄
aking Insert [Roc] Select 'aking'
GO 10
--批處理執(zhí)行10次,向表Roc中插入10行記錄aking
?
轉(zhuǎn)載于:https://www.cnblogs.com/Ting-light/p/9541279.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的sql server中的go的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝商品评论API接口
- 下一篇: React开发(248):react项目