Sybase/isql/Transact-SQL - как завершить SQL на той же строке

У меня есть запрос, который генерирует дополнительные запросы, такие вещи, как это:

select 'exec uspd_thing "'||name||'"'
from sometable

Который производит это:

exec uspd_thing "name1"
exec uspd_thing "name2"

Но isql требует оператора 'go' после каждого оператора.

Существует возможность изменить терминатор команды (-c), но новый терминатор все еще должен отображаться в той же строке.

Любые предложения / советы о том, как делать такие вещи... Я думаю, я мог бы постобработать результаты, чтобы добавить строки "go"...

Спасибо Крис

3 ответа

Решение

AFAIK ISQL не всегда нужен символ go (или ";", который в равной степени будет служить терминатором. Команды T-SQL могут размещаться в последовательных строках без разделителя, парсер будет обрабатывать это.

Р. Подс

Попробуйте добавить результат в результате:

select 'exec uspd_thing "'||name||'"'||char(10)||'go'||char(10)
from sometable

Опция постобработки через awk выглядит следующим образом:

awk '{print $0}; /exec / {print "go"}' 
Другие вопросы по тегам