Использование SQLCMD в Ubuntu без обновления базы данных SQL Azure - PullRequest
0 голосов
/ 21 сентября 2018

У меня SQLCMD на машине с Ubuntu.Я анализирую многие XML-файлы, генерирую операторы Insert / Update / Delete и сохраняю их в файле .sql.Таким образом, один файл .sql содержит много операторов SQL.Все они заключены в сделку.Я запускаю утилиту SQLCMD, передавая файл в качестве аргумента.Моя база данных - это Azure SQL.Я никогда не получаю результат ошибки, но большую часть времени моя база данных не обновляется.Я не понимаю, почему это происходит, потому что нет ошибки.Если я запускаю этот файл .sql непосредственно на сервере, он обновляет базу данных.

Есть ли способ отследить / отладить происходящее?

Вот моя команда SQLCMD

$sqlcmd -i mysqlFile.sql -m-1 -p

Конфигурация базы данных задается в переменных среды.

РЕДАКТИРОВАТЬ

Более подробно, я запускаю сценарий оболочки, который генерирует многоsql-файлы, а затем выполняет их в Azure SQL.Каждый файл sql имеет транзакцию и множество операторов DML внутри транзакции.У этого также есть надлежащая попытка / поймать вложение.Во время процесса некоторые файлы SQL выполняются правильно и обновляют базу данных, но для некоторых ничего не меняется.Я не вижу никакой ошибки при выполнении SQLCMD, он просто говорит "затронуто 0 строк".Как только файл sql завершается сбоем, все последующие sql сбои тоже.Может ли это быть проблемой с сетью / брандмауэром?

1 Ответ

0 голосов
/ 21 сентября 2018

Пожалуйста, попробуйте что-то вроде этого:

echo :setvar param1 DUMMYVALUE > param_input.sql
cat input.sql >> param_input.sql
sqlcmd –S yourServerName.database.windows.net -d database -U user -P pass -i param_input.sql 
...