全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5290
推到 Plurk!
推到 Facebook!

Transact-SQL中的GO到底有什麼意義呢?

答題得分者是:GrandRURU
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-27 19:42:56 IP:114.33.xxx.xxx 訂閱
一.Transact-SQL中的GO到底有什麼意義呢?
例如:
select xxx
WHILE xxxx
insert xxxx
END
updted xxx
他執行的順序不是應該select->WHILE->insert->END->...->updted 嗎?
程式執行不是由上到下嗎?
哪為什麼還要GO呢?
//--------------------------------------------------------------------------------------------
假設連線1
方式1:他分開傳送陳述式群組

select x
select xxx


select 00
select 000

方式2:他分開傳送陳述式群組

select x
select xxx
GO


select 00
select 000
GO

二.請問
方式1在select x執行錯誤時,select xxx select 00 select 000皆不會再執行了
方式2在select x執行錯誤時,select xxx不會再執行了,但是會繼續執行select 00 select 000
對嗎?

謝謝!!
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2009-12-27 20:50:16, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-28 15:38:50 IP:219.70.xxx.xxx 未訂閱
GO
應該是T-SQL的procedure language
類似像:SQL的「;」符號

MSDN是這樣解譯的:
Signals the end of a batch of Transact-SQL statements to the SQL Server utilities.

詳細請參閱:
GO (Transact-SQL)<!---->

===================引 用 l90425 文 章===================
一.Transact-SQL中的GO到底有什麼意義呢?
例如:
select xxx
WHILE xxxx
insert xxxx
END
updted xxx
他執行的順序不是應該select->WHILE->insert->END->...->updted 嗎?
程式執行不是由上到下嗎?
哪為什麼還要GO呢?
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-29 00:32:16 IP:114.33.xxx.xxx 訂閱
一.
1.對
2.對
3.
select * from 不存的資料表
select * from 存的資料表
方式2:
select * from 不存的資料表
go
select * from 存的資料表
go
執行方式1時,只會執行到select * from 不存的資料表,並會報錯,但是不會執行select * from 存的資料表。
執行方式2時,會執行select * from 不存的資料表,即使發生錯誤還是會執行select * from 存的資料表,因為他們是各別的批次。
所以有GO存在的必要!

二.
1. 對
2. 對


我比較好奇一件事是
    >>為了讓求職之路更遠,一起為 RAD Studio 的未來努力吧!    >>(全體默……)    >>怎…怎麼大家……這…這什麼表情呀?!
這是什麼意思呀?

謝謝!!
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2009-12-29 00:33:03, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-29 18:05:50 IP:118.167.xxx.xxx 未訂閱
簽名檔的內容是一種想激勵新手的一段對話,但往往都得到白眼的回應 XD

總之,一起努力分享心得吧!

===================引 用 l90425 文 章===================
一.
1.對
2.對
3.
select * from 不存的資料表
select * from 存的資料表
方式2:
select * from 不存的資料表
go
select * from 存的資料表
go
執行方式1時,只會執行到select * from 不存的資料表,並會報錯,但是不會執行select * from 存的資料表。
執行方式2時,會執行select * from 不存的資料表,即使發生錯誤還是會執行select * from 存的資料表,因為他們是各別的批次。
所以有GO存在的必要!

二.
1. 對
2. 對


我比較好奇一件事是
>>為了讓求職之路更遠,一起為 RAD Studio 的未來努力吧!    >>(全體默……)    >>怎…怎麼大家……這…這什麼表情呀?!
這是什麼意思呀?

謝謝!!
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-29 23:34:12 IP:114.33.xxx.xxx 訂閱
>>簽名檔的內容是一種想激勵新手的一段對話,但往往都得到白眼的回應 XD

>>總之,一起努力分享心得吧!

呵呵!原來如此呀!
------
-謝謝大大熱心的回覆!謝謝!
系統時間:2024-04-23 19:35:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!