SQLSERVER 中GO

看了幾篇文章,雲裏霧裏,直到這篇本人才算有所收穫。


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 '不及格'
 end
 from tb_Grade

?

如果只是執行一條語句,有沒有GO都一樣

如果多條語句之間用GO分隔開就不一樣了

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

例如:

首先同時執行下邊的語句

select * from sysobjects where id=a
select getdate()
?

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

而你再執行

?

select * from sysobjects where id=a
go
select getdate()
go

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

ps:SQL SERVER 中 GO 的用法

用信號通知 Microsoft® SQL Server™ 實用工具一批 Transact-SQL 語句的結束。
GO 不是 Transact-SQL 語句;而是可爲 osql 和 isql 實用工具及 SQL Server 查詢分析器識別的命令。

如果你的SQL過長的時候,就要寫GO,或者有一些語句,它只能是第一句操作的,在之前你也得寫 GO ,GO的意思 是 分批處理語句 有加這個 GO ,就執行GO 行的代碼,執行後再執行接下來的代碼……

像這樣的情況下就要用到GO ,分批處理數據……

?

use master
go
 
if exists (select * from sysdatabases where name = 'kejianDB')
drop database kejianDB
go
 
create database kejianDB
go
 
use kejianDB
go
 
--(行業表)
create table Trade
(
tra_Id int primary key identity(1,1) not null, --行業ID (主鍵、自增長)
tra_Name varchar(50) not null --行業名稱
)
go

以上就是本文的全部敘述,希望大家喜歡。

http://www.jb51.net/article/73559.htm

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

順便加個百度知道的

SQL Server的工具中(比如:SQL Server Management Studio) 標誌着一組T-SQL語句的結尾符號。

比如說:

1
2
3
4
5
6
7
8
9
USE AdventureWorks2012;
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

不過這個是結尾標誌符號是可以自定義的,你可以改爲你想要的字符。

你可以在MSDN中找到更多關於Go語句的內容

http://msdn.microsoft.com/en-us/library/ms188037.aspx

坊間小毅  | 發佈於2014-05-17 16:18


有種迷之笑點

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

順便再加一句

除了提交外,go還可以指定提交的次數。比如

select * from table

go 2

那麼go之前的語句會被執行兩次。

本段引自灰太狼的博客(http://blog.csdn.net/tjvictor)文章 http://blog.csdn.net/tjvictor/article/details/5454669

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

以及:

如果第一個語句報錯.有go的情況下,還會繼續執行下面的語句.不管第一個語句有沒有插入成功.

如果沒有go的話.第一個語句報錯,下面的將不被執行.

如果既有begin tran ,又有go 的話. 如果報錯,begin tran 將不起作用.rollback 不了. 就是有go的話,begin tran 將不起作用.

http://blog.csdn.net/wobuwei/article/details/4466845

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章