Назад | Перейти на главную страницу

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

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

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

Что производит это:

exec uspd_thing "name1"
exec uspd_thing "name2"

Но isql требует инструкции go после каждой инструкции.

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

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

Спасибо Крис

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

Р. Подс

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

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

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

awk '{print $0}; /exec / {print "go"}'