簡體   English   中英

TSQL中GO語句的含義是什么?

[英]What's the meaning of the GO-statement in TSQL

我是TSQL的新手,想知道GO語句的真正含義。 對我來說,它似乎只是在那里似乎適合。

我想它以某種方式告訴sql server運行前一個語句? 如果您根本不使用它們會發生什么? 如果我不使用GO有人可以給出一個聲明將會中斷的示例。

請詳細說明。

它是批量終止符

這會打破

declare @i int
set @i =5

declare @i int
set @i =6

Select @i

消息134,級別15,狀態1,行5變量名稱'@i'已經聲明。 變量名在查詢批處理或存儲過程中必須是唯一的。

這會奏效

declare @i int
set @i =5

go
declare @i int
set @i =6

Select @i

它結束批次。

它很少需要,而且使用頻率遠遠超過它應該使用的頻率。 一個有效的地方是存儲過程編程,你首先檢查proc是否存在,如果不存在則刪除它。 然后使用go語句結束批處理,因為create proc語句必須是批處理的第一個語句。

順便說說。 它實際上不是TSQL命令。 它只是由Microsoft DB工具用於分隔兩批命令。

實際上,如果您想在Optionss..Batch分離首選項設置下,可以將其配置為SSMS中的不同單詞。

這種區別很重要的主要地方是,如果您嘗試通過代碼中的數據庫連接(例如通過ADO.NET)在查詢中使用它們,那么SQL將會阻塞GO語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM