SQL server中的GO詳解

2021-10-07 09:55:07 字數 1345 閱讀 1073

經常看到各種sql語句中間夾雜著那麼幾個看似毫無意義的go,這個go的作用是什麼呢?

官方說法是:go只是sql server管理器(ssms)中用來提交t-sql語句的乙個標誌

我的理解是:go相當於乙個.sql檔案的結束標記

大家都用過這個

下面我們來輸入一些語句看一下不使用go和使用go的區別:

declare

@aint

set@a=1

select

@a

declare

@aint

goset@a=

1select

@a

總結:我們都知道如果乙個變數@a是宣告在a.sql檔案中的,那麼在b.sql中是不能為@a賦值的,因為這根本就是兩個指令碼檔案。而go語句正是起到了分割.sql檔案的作用。再看乙個例子:

select

*from dbo.msdbms

select

*from dbo.backupfile

go 2

執行結果:

執行結果:

總結:go 語句後面跟數字代表提交的次數,上圖中的第乙個go依然起到了示例1中提到的分割.sql檔案的作用。

同時,每個被go分隔的語句都是乙個單獨的事務,乙個語句執行失敗不會影響其它語句執行。

例如:首先同時執行下邊的語句

select

*from sysobjects where id=a

select getdate(

)

你會發現會報錯,並且不會顯示任何結果集

而你再執行

select

*from sysobjects where id=a

goselect getdate(

)go

你會發現儘管同樣會報錯,但結果集中包含select getdate()的結果。

SQLSERVER 中GO的作用詳解

具體不廢話了,請看下文詳解。use db csharp go select 備註 case when grade 90 then 成績優秀 when grade 90 and grade 80 then 成績良好 when grade 80 and grade 70 then 成績及格 else 不...

SQL SERVER中GO的用法

sql server中go的用法 用訊號通知 microsoft?sql server?實用工具一批 transact sql 語句的結束。go 不是 transact sql 語句 而是可為 osql 和 isql 實用工具及 sql server 查詢分析器識別的命令。www.2cto.com ...

SQL SERVER 中 GO 的用法

用訊號通知 microsoft sql server 實用工具一批 transact sql 語句的結束。go 不是 transact sql 語句 而是可為 osql 和 isql 實用工具及 sql server 查詢分析器識別的命令。如果你的sql過長的時候,就要寫go,或者有一些語句,它只能...