2010-05-25 12 views
19

Ich bin neu in TSQL und frage mich, was die GO Aussage wirklich bedeutet. Für mich scheint es nur dort hineingeworfen zu werden, wo es zu passen scheint.Was ist die Bedeutung der GO-Anweisung in TSQL

Ich denke, es irgendwie sagt SQL-Server, die vorherige Anweisung auszuführen? Was passiert, wenn Sie sie überhaupt nicht benutzen? Könnte jemand ein Beispiel geben, wo eine Aussage bricht, wenn ich keine GO verwende.

Bitte erläutern.

+0

mögliches Duplikat von [T-SQL GO-Anweisung] (http://stackoverflow.com/questions/2668529/t-sql-go-statement) – Thomas

Antwort

14

Es ist ein Batch-Terminator

diese

declare @i int 
set @i =5 

declare @i int 
set @i =6 

Select @i 

Msg 134, Ebene 15, Status 1, Zeile 5 Der Variablenname '@i' bereits erklärt wurde brechen. Variablennamen müssen innerhalb eines Abfrage-Batches oder einer gespeicherten Prozedur eindeutig sein.

wird diese

declare @i int 
set @i =5 

go 
declare @i int 
set @i =6 

Select @i 
10

Er beendet die Charge.

Es wird selten benötigt und wird viel öfter verwendet, als es sein sollte. Ein gültiger Platz ist in der gespeicherten Proc-Programmierung, wo Sie zuerst prüfen, ob der Proc existiert und ihn fallen lassen, wenn dies nicht der Fall ist. Dann verwenden Sie eine Anweisung go, um den Stapel zu beenden, da die Anweisung create proc die erste Anweisung eines Stapels sein muss.

+1

Ein anderer gültiger und gebräuchlicher Platz ist mit ALTER VIEW-Befehlen in Ihrem TSQL. ''ALTER VIEW' muss die einzige Aussage im Stapel sein'. Das heißt, es benötigt ein "GO" vor und nach der ALTER VIEW. – mmcrae

6

Durch die Art und Weise arbeiten. Es ist kein TSQL-Befehl. Es wird nur von Microsoft DB-Tools verwendet, um zwei Batch-Befehle zu trennen.

In der Tat können Sie es als ein anderes Wort in SSMS konfigurieren, wenn Sie unter der Einstellung Optionss.Batch separation preference möchten.

Die wichtigste Stelle dieser Unterscheidung ist wichtig, dass SQL Will GO-Anweisung erstickt, wenn Sie versuchen, sie in Abfragen über eine Datenbankverbindung aus Code, z. B. über ADO.NET zu verwenden.

Verwandte Themen