SQL Server Management Studio всегда вставляет команду GO, когда я создаю запрос, используя меню "Script As". Зачем? Что действительно делает GO?
Что такое использование GO в SQL Server Management Studio и Transact SQL?
Ответ 1
Это терминатор партии, однако вы можете изменить его на все, что хотите.
Ответ 2
Начиная с Management Studio 2005 кажется, что вы можете использовать GO
с параметром int
, например:
INSERT INTO mytable DEFAULT VALUES
GO 10
Выше будет вставлено 10 строк в mytable
. Вообще говоря, GO
будет выполнять соответствующие команды sql n
раз.
Ответ 3
Команда GO не является оператором Transact-SQL, а специальной командой, признанной несколькими утилитами MS, включая редактор кода SQL Server Management Studio.
Команда GO используется для группировки команд SQL в пакеты, которые отправляются на сервер вместе. Команды, включенные в пакет, то есть набор команд с момента последней команды GO или начала сеанса, должны быть логически последовательными. Например, вы не можете определить переменную в одной партии, а затем использовать ее в другой, поскольку область действия переменной ограничена пакетом, в котором она определена.
Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ms188037.aspx.
Ответ 4
GO не является ключевым словом SQL.
Это разделитель пакетов, используемый клиентскими инструментами (например, SSMS) для разбивки всего script на партии
Ответы несколько раз... пример 1
Ответ 5
Чтобы добавить к существующим ответам, когда вы создаете представления, вы должны разделить эти команды на партии с помощью go
, иначе вы получите сообщение об ошибке 'CREATE VIEW' must be the only statement in the batch
. Так, например, вы не сможете выполнить следующий sql script без 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
Ответ 6
Use herDatabase
GO ;
Код говорит, что выполняет инструкции над марке GO
.
Моя база данных по умолчанию - myDatabase, поэтому вместо использования myDatabase GO
и делает текущий запрос для использования herDatabase
Ответ 7
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 server в другом пакете. Итак, как мы видим, он разделил партии.
Ответ 8
Вот волшебство GO.
SELECT 'Go'
Go 10
СИНТАКСИС: Перейти INT (BatchNumber)
BatchNumber: Не было времени.
Выглядит просто, это может привести к Spaghetti, если вы будете кодировать глубже.