Batch Separator „GO”

Bardzo często pracując w MS SQL Server Management Studio wpisujemy komendy po, których odruchowo dodajemy tajemnicze GO. Co to takiego?

Go jest to tzw. Batch Separator. Oddziela on nam poszczególne komendy, które muszą zostać wykonane.

np.

USE AdventureWorks2008R2
GO
Istnieje również możliwość kilkukrotnego powtórzenia danej komendy. Należy wtedy po Go podać jako parametr ilość powtórzeń.
create table test1(
                   p1 int,
                   p2 varchar(10)
                  )
GO

insert into test1 values(1,"test")
GO 10

W odpowiedzi na GO 10 uzyskujemy:

Beginning execution loop
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
Batch execution completed 10 times.

Oznacza to, że 10 razy został wykonany insert do tabeli.

Należy nadmienić, że komenda „GO” występuje wyłącznie w SSMS i SQLCMD.

GO nie jest komendą T-SQL-a

W MS SQL Server Management Studio istnieje możliwość zmiany Batch Separatora z „GO” na dowolnie innego.

W tym celu należy w menu Tools wybrać Option. Po otwarciu okna na drzewie należy wybrać:

Query Execution->SQL Server->General.

 

W pozycji Batch Separator wpisujemy nową komendę zastępującą GO.

 

 

Używając SQLCMD również można zmienić BatchSeparator używając opcji -c [cmdend]
np

SQLCMD -S dbrejnak\sqlctp3 -E -c RUN

1>use test
2>run
Źródło:

DBBS