【问题标题】:Run sql script on remote SQL Server database from my Linux machine从我的 Linux 机器上在远程 SQL Server 数据库上运行 sql 脚本
【发布时间】:2020-08-29 09:44:14
【问题描述】:

我的 linux 机器中有一个 .sql 文件。我想连接到远程 Windows 机器中的 MS SQL 数据库并在该数据库中运行 .sql 文件。

osql -S servername -U xx -P yy runs okay and returns a SQL window like:

SQL>

我可以使用它运行单个查询。我有一个.sql 文件,其中包含许多我需要在名为abc 的数据库上运行的sql 命令。我怎样才能使用 shell 命令来做到这一点。以下对我不起作用,

osql -S mssql -U xx -P yy -i /home/admin/Script.sql -D abc

我收到以下错误,

Illegal option -i
Syntax: osql -S server -U user -P password

Script.sql 文件的路径是正确的,因为这会打开文件 - vi /home/admin/Script.sql。不确定是什么问题。任何帮助将不胜感激

【问题讨论】:

  • 您收到什么错误信息?我们看不到您的屏幕,因此请编辑问题以包含错误消息 - 作为文本。另外,osql 在调用 isql 之前会检查您的 ODBC 配置...您是否尝试过直接调用 isql
  • Linux 有哪些发行版? sqlcmdmssql-cli 在 Linux 上都可用,并且都接受 sql 文件作为输入参数。另一方面,osql 已经被弃用了一段时间,应该避免使用它(正如文档告诉你的那样)。
  • @AlwaysLearning 我在问题中添加了错误消息。有什么想法吗?
  • @Larnu 感谢您的评论。我要多尝试一点。如果 osql 不起作用,我将尝试 sqlcmd,我必须从安装开始

标签: sql-server database tsql freetds osql


【解决方案1】:

osql 不适合我。我尝试了 sqlcmd ,它就像一个魅力。参考这些链接以安装 ms sql 工具 - http://www.thesqlreport.com/?p=1494https://sqlserveronlinuxbackup.com/sqlcmd-command-not-found-ubuntu/

sqlcmd 语法: sqlcmd -S 10.0.0.0 -U xx -P yy -d mydb -i /home/admin/abc.sql

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多