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"}'