Как использовать GO в среде SQL Server Management Studio и Transact SQL?
SQL Server Management Studio всегда вставляет команду GO при создании запроса, используя меню "скрипт как" правой кнопкой мыши. Почему? Что выходит на самом деле?
8 ответов
команда GO - это не инструкция Transact-SQL, а специальная команда, распознанная несколькими утилитами MS, включая редактор кода SQL Server Management Studio.
команда GO используется для группировки команд SQL в пакеты, которые отправляются на сервер вместе. Команды, включенные в пакет, то есть набор команд с момента последней команды GO или начала сеанса, должны быть логически согласованными. Например, нельзя определить переменную в одном пакете, а затем использовать это в другом, так как область переменной ограничена пакетом, в котором она определена.
дополнительные сведения см. В разделе http://msdn.microsoft.com/en-us/library/ms188037.aspx.
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
Use herDatabase
GO ;
код говорит, чтобы выполнить инструкции выше GO
маркер.
Моя база данных по умолчанию-myDatabase, поэтому вместо использования myDatabase GO
и делает текущий запрос для использования herDatabase
Go означает, что любые SQL-операторы, написанные до него и после любого более раннего GO, будут отправлены на SQL server для обработки.
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 в другом пакете. Так что, как мы видим, он разделил партии.
вот магия GO.
SELECT 'Go'
Go 10
синтаксис : Go INT (BatchNumber)
BatchNumber: ни разу не произошло
выглядит просто, это может привести вас к для спагетти если вы глубже кодекса.