如果只是執(zhí)行一條語句,有沒有g(shù)o都一樣
在桂平等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,桂平網(wǎng)站建設(shè)費(fèi)用合理。
如果多條語句之間用go分隔開就不一樣了
每個被go分隔的語句都是一個單獨(dú)的事務(wù),一個語句執(zhí)行失敗不會影響其它語句執(zhí)行。
例如:
首先同時執(zhí)行下邊的語句
select
*
from
sysobjects
where
id=a
select
getdate()
你會發(fā)現(xiàn)會報(bào)錯,并且不會顯示任何結(jié)果集
而你再執(zhí)行
select
*
from
sysobjects
where
id=a
go
select
getdate()
go
你會發(fā)現(xiàn)盡管同樣會報(bào)錯,但結(jié)果集中包含select
getdate()的結(jié)果。
GO表示進(jìn)入這個數(shù)據(jù)庫,USEMASTER是使用某數(shù)據(jù)庫,后面跟數(shù)據(jù)庫名。
插入注冊表的方法:
1.在數(shù)據(jù)庫中創(chuàng)建一個測試表。您可以看到測試表中有三個字段:id、name和second。
2.輸入“insertintotest(名稱,第二個)值(空,空)”語句,然后單擊運(yùn)行時,如下圖所示。
3.運(yùn)行之后,您可以看到測試表插入了一個空記錄,如下圖所示。
4.您還可以插入一個字段為空的記錄,輸入“insertintotest(name,second)values(null,88)”SQL語句,點(diǎn)擊run,如下圖所示:
5.運(yùn)行后,可以看到一條記錄已經(jīng)插入,name值為null,如下圖所示。
6.“insertintotest(name)values('insidethree')”也可以用來插入一條記錄,除了name字段,其他字段的值都是空的,如下圖所示。
每個批相當(dāng)于一個線程,若這兩個線程可以并行處理,則分隔兩個批之間的go可以省略。反之,若兩個批不能同時處理,他們之間有先后關(guān)系,則go不能省略。下面舉例說明。
use pxscj
go
--上面兩行是第一個批
select * from xsb
go
--上面兩行是第二個批,這兩個批之間有先后關(guān)系(必須先打開數(shù)據(jù)庫,才能訪問xsb表。
--因此第一個go絕對不能省略。
select * from xsb
go
select @@servision
go
--這兩個批沒有先后關(guān)系,第一個go可以省略。
go
表示一批
t-sql
語句結(jié)束,go
之后的
t-sql
語句屬于另一個批處理的范圍,在
t-sql
所有語句的最后都默認(rèn)有一個
go。但是,請注意
go
不是
t-sql
語句,而只是一個能被
sql
server
實(shí)用工具識別的命令。
@是標(biāo)識變量的符號。所謂變量是指可以隨用戶輸入數(shù)據(jù)不同而改變的替代符號。
以一條命令的方式來處理一組命令的過程稱為批處理.
"GO"是批處理的標(biāo)志,它是一條或多條SQL語句的集合,SQL Server將批處理語句編譯成一個可執(zhí)行單元,此單元稱為執(zhí)行計(jì)劃.
為了重復(fù)執(zhí)行一項(xiàng)任務(wù),將任務(wù)的命令存儲在一個文件中,并作為單個執(zhí)行計(jì)劃向數(shù)據(jù)庫發(fā)送所有命令.
以上是本人從自己教科書上挑的幾句說明,理解起來應(yīng)該沒問題..
執(zhí)行命令時是命令打包和執(zhí)行的過程,執(zhí)行批處理命令就是把每條命令分開打包(go的使用),然后執(zhí)行,使用批處理的時候你可以發(fā)現(xiàn)如果里面有2條命令,而第一條出錯了,第2條還是執(zhí)行的
以上是個人的一點(diǎn)理解,表達(dá)能力太差,別扔偶板磚...