DB2 эквивалентно SQL GO? - PullRequest
       12

DB2 эквивалентно SQL GO?

2 голосов
/ 26 мая 2009

Я написал запрос DB2 для следующего:

  • Создать временную таблицу
  • Выберите из запроса монстра / вставьте во временную таблицу
  • Выбрать из временной таблицы / удалить из старой таблицы
  • Выбрать из временной таблицы / вставить в другую таблицу

В MSSQL мне разрешено запускать команды одну за другой как один длинный запрос. В противном случае я могу разграничить их с помощью команд 'GO'. Когда я пытаюсь сделать это в DB2, я получаю сообщение об ошибке:

DB2CLI.DLL: ERROR [42601] [IBM][CLI Driver][DB2] SQL0199N The use of the reserved
word "GO" following "" is not valid. Expected tokens may include: "". 
SQLSTATE=42601 

Что можно использовать для разграничения этих инструкций, не выходя за пределы временной таблицы?

Ответы [ 3 ]

4 голосов
/ 26 мая 2009

GO - это то, что используется в MSSQL Studio, у меня есть собственное приложение для запуска обновлений в живую и использую «GO» для разделения операторов.

Поддерживает ли DB2 точку с запятой (;)? Это стандартный разделитель во многих реализациях SQL.

1 голос
/ 26 мая 2009

Вы пытались использовать только точку с запятой вместо "GO"?

Эта ссылка предполагает, что точка с запятой должна работать для DB2 - http://www.scribd.com/doc/16640/IBM-DB2

1 голос
/ 26 мая 2009

Я бы попробовал обернуть то, что вы хотите сделать, в НАЧАЛЕ и КОНЕЦ, чтобы установить область действия.

GO - это не команда SQL, это даже не команда TSQL. Это инструкция для парсера. Я не знаю DB2, но я бы предположил, что GO не является необходимым.

Из советов Devx.com

Хотя GO не является оператором T-SQL, он часто используется в коде T-SQL, и если вы не знаете, что это такое, это может быть загадкой. Так какова его цель? Это приводит к тому, что все операторы с начала сценария или последнего оператора GO (в зависимости от того, что ближе) компилируются в один план выполнения и отправляются на сервер независимо от других пакетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...