Студія управління SQL Server завжди вставляє команду GO, коли я створюю запит, використовуючи правою кнопкою миші меню "Сценарій як". Чому? Що насправді робить GO?
Студія управління SQL Server завжди вставляє команду 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
SYNTAX: Ідіть INT(BatchNumber)
Серійний номер: жодного разу не траплялося
Виглядає просто, це може привести вас до спагетті, якщо ви кодуєте глибше.