【发布时间】:2018-09-21 03:43:10
【问题描述】:
我在 Ubuntu 机器上安装了 SQLCMD。我解析许多 XML 文件并生成插入/更新/删除语句并将它们保存在 .sql 文件中。因此,单个 .sql 文件包含许多 sql 语句。它们都包含在事务中。 我运行 SQLCMD 实用程序,将文件作为参数传递。我的数据库是 Azure SQL。 我从来没有得到错误结果,但是很多时候,我的数据库没有被更新。我不知道为什么会这样,因为没有错误。如果我直接在服务器上运行这些 .sql 文件,它会更新数据库。
有什么方法可以追踪/调试正在发生的事情吗?
这是我的 SQLCMD 命令
$sqlcmd -i mysqlFile.sql -m-1 -p
数据库配置在环境变量中设置。
编辑
添加更多细节,我正在运行一个 shell 脚本,它生成许多 sql 文件,然后在 Azure SQL 上执行这些文件。每个 sql 文件都有一个事务和事务内的许多 DML 语句。它还具有适当的 try/catch 封闭。 在这个过程中,一些 SQL 文件被正确执行并更新了数据库,但对于一些,什么都没有改变。我在执行 SQLCMD 时没有看到任何错误,它只是说“0 行受影响”。一旦一个 sql 文件失败,所有后续的 sql 也会失败。 这可能是网络/防火墙的问题吗?
【问题讨论】:
-
尝试指定 Azure SQL 服务器名称。 sqlcmd –S yourServerName.database.windows.net –U yourUsername –P yourPassword
标签: linux ubuntu azure-sql-database sqlcmd