【问题标题】:Using SQLCMD on Ubuntu not updating Azure SQL database在 Ubuntu 上使用 SQLCMD 不更新 Azure SQL 数据库
【发布时间】: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


【解决方案1】:

请尝试以下方法:

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 

【讨论】:

  • 这没有帮助。错误是随机的。我在问题中添加了更多细节
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多