-S Server时sqlcmd错误

时间:2016-03-09 12:33:33

标签: sql-server sqlcmd

我有一个非常奇怪的情况。我正在使用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 个答案:

答案 0 :(得分: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正常工作。