首页 文章

-S Server时sqlcmd错误

提问于
浏览
1

我有一个非常奇怪的情况 . 我正在使用sqlcmd使用以下命令运行脚本:

sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i test.sql >> test_log.txt 2>&1

SName是IP \ Instance,如10.10.10.100 \ MyInstance

test.sql的内容很简单:

select @@servername
select getdate()

当我运行它时给我以下错误:

Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序11:找不到数据源名称,并且未指定默认驱动程序 .

***如果我将脚本复制并粘贴到另一台机器上并运行它可以正常工作 .

为什么要尝试通过ODBC连接?

我认为这是一个环境问题,但我不知道从哪里开始寻找 .

谢谢

1 回答

  • 1

    从命令行使用 SQLCMD 时,它默认使用Microsoft ODBC驱动程序 .

    来自https://msdn.microsoft.com/en-us/library/ms162773.aspx

    SQL Server Management Studio使用Microsoft .NET Framework SqlClient在查询编辑器中以常规和SQLCMD模式执行 . 从命令行运行sqlcmd时,sqlcmd使用ODBC驱动程序 . 由于可能应用不同的默认选项,因此在SQLCMD模式和sqlcmd实用程序中的SQL Server Management Studio中执行相同查询时,可能会看到不同的行为 .

    您需要在目标环境中配置ODBC才能使 SQLCMD 正常工作 .

相关问题