SQL Server Management Studio всегда вставляет команду GO, когда я создаю запрос, используя контекстное меню «Сценарий как» правой кнопкой мыши. Почему? Что на самом деле делает GO?
SQL Server Management Studio всегда вставляет команду GO, когда я создаю запрос, используя контекстное меню «Сценарий как» правой кнопкой мыши. Почему? Что на самом деле делает GO?
Ответы:
Это пакетный терминатор, однако вы можете изменить его на что угодно

Команда GO - это не инструкция Transact-SQL, а специальная команда, распознаваемая несколькими утилитами MS, включая редактор кода SQL Server Management Studio.
Команда GO используется для группировки команд SQL в пакеты, которые отправляются на сервер вместе. Команды, включенные в пакет, то есть набор команд со времени последней команды GO или начала сеанса, должны быть логически согласованы. Например, вы не можете определить переменную в одном пакете, а затем использовать ее в другом, поскольку область действия переменной ограничена пакетом, в котором она определена.
Для получения дополнительной информации см. Http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GOдействительно полезно?
GO не является ключевым словом SQL.
Это разделитель пакетов, используемый клиентскими инструментами (такими как SSMS), чтобы разбить весь скрипт на пакеты
Ответили раньше несколько раз ... пример 1
Просто для добавления к существующим ответам, когда вы создаете представления, вы должны разделить эти команды на пакеты, используя go, иначе вы получите ошибку 'CREATE VIEW' must be the only statement in the batch. Так, например, вы не сможете выполнить следующий сценарий SQL безgo
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 означает, что любые операторы SQL, написанные до и после любого более раннего GO, будут отправляться на SQL-сервер для обработки.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
В приведенном выше примере операторы перед GO 1 будут отправлены на sql sever в пакете, а затем любые другие операторы перед GO 2 перейдут на sql сервер в другом пакете. Итак, как мы видим, он разделил партии.
Здесь магия GO.
SELECT 'Go'
Go 10
Синтаксис: Go INT(BatchNumber)
Серийный номер: не произошло ни одного раза
Выглядит просто, это может привести вас к спагетти, если вы будете кодировать глубже.