2010-07-07 170 views
2

我有一台Windows 2008 x64服​​务器并安装了SQL Server 2008 x64。 SQL Server目录下的osql.exe可以列出具有-L的实例。我从另一个SQL Server 2005 x86中复制了osql.exe + osql.rll,并且'。\ osql.exe -L'返回类似“[ODBC驱动程序管理器]数据源名称未找到并且没有指定默认驱动程序”的错误。64位Windows + 64位SQL Server的32位OSQL问题

检查注册表'HKLM \ SOFTWARE \ Wow6432Node \ ODBC \ ODBCINST.INI'后,'SQL Server'和'SQL Server Native Client 10.0'都可以,相关的dll文件也没问题。我也检查了MDAC版本,它是6.0.6002.18005。我错过了什么吗?

有趣的是,SQL Server 2000中的osql.exe运行良好,可以在服务器上列出实例。而osql.rll不是必需的,osql.exe只需要msvcr71.dll。

我能做些什么来使osql.exe(从SQL 2005)在服务器上运行?那两个osql.exe(sql 2005,sql 2000)有没有区别?

+2

为什么不使用sqlcmd而不是osql? – DaveShaw 2010-07-07 11:00:18

+0

谢谢,我会尝试sqlcmd。但是,这是SQL Server 2005的OSQL.exe的错误吗?或者一些设置不正确? – fozzold 2010-07-08 11:31:23

回答

1

正如DaveShaw所说,你应该使用SQLCMD.EXE来代替......幸运的是,语法与旧的OSQL.EXE相当,所以过渡不应该很难。

您可以从the latest Feature Pack for SQL Server 2005 page下载SQLCMD(a/k/a Microsoft SQL Server 2005命令行查询实用程序)。安装适当的SQLCMD和SQL Server Native Client(也位于同一页面上),无论如何,您都可以从网络上的任何客户端系统(x86或x64)运行命令。