SQL Server Management Studio fügt immer einen GO-Befehl ein, wenn ich eine Abfrage über das Kontextmenü "Skript als" erstelle. Warum? Was macht GO eigentlich?
SQL Server Management Studio fügt immer einen GO-Befehl ein, wenn ich eine Abfrage über das Kontextmenü "Skript als" erstelle. Warum? Was macht GO eigentlich?
Antworten:
Es ist ein Batch-Terminator, Sie können ihn jedoch nach Belieben ändern
Der Befehl GO ist keine Transact-SQL-Anweisung, sondern ein spezieller Befehl, der von mehreren MS-Dienstprogrammen einschließlich des SQL Editor Management Studio-Code-Editors erkannt wird.
Der Befehl GO wird verwendet, um SQL-Befehle in Stapeln zu gruppieren, die zusammen an den Server gesendet werden. Die im Stapel enthaltenen Befehle, dh der Befehlssatz seit dem letzten GO-Befehl oder dem Start der Sitzung, müssen logisch konsistent sein. Beispielsweise können Sie eine Variable nicht in einem Stapel definieren und dann in einem anderen verwenden, da der Umfang der Variablen auf den Stapel beschränkt ist, in dem sie definiert ist.
Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GO
tatsächlich nützlich?
GO ist kein SQL-Schlüsselwort.
Es ist ein Batch-Trennzeichen, das von Client-Tools (wie SSMS) verwendet wird, um das gesamte Skript in Batches aufzuteilen
Vorher mehrmals beantwortet ... Beispiel 1
go
Um die vorhandenen Antworten zu ergänzen, müssen Sie beim Erstellen von Ansichten diese Befehle mithilfe von in Stapel aufteilen , da sonst der Fehler angezeigt wird 'CREATE VIEW' must be the only statement in the batch
. So können Sie beispielsweise das folgende SQL-Skript nicht ohne ausführengo
create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go
select * from MyView1
select * from MyView2
Go bedeutet, dass alle SQL-Anweisungen, die davor und nach einem früheren GO geschrieben wurden, zur Verarbeitung an den SQL Server gesendet werden.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
Im obigen Beispiel werden Anweisungen vor GO 1 in einem Stapel an SQL Server gesendet, und alle anderen Anweisungen vor GO 2 werden in einem anderen Stapel an SQL Server gesendet. Wie wir sehen, hat es Chargen getrennt.
Hier ist die Magie von GO.
SELECT 'Go'
Go 10
SYNTAX: Gehen Sie INT(BatchNumber)
BatchNumber: Es ist keine Zeit aufgetreten
Sieht einfach aus. Es könnte Sie zu Spaghetti führen, wenn Sie tiefer codieren.