如何从DOS测试SQL Server连接?

时间:2009-10-23 18:11:45

标签: sql-server scripting dos

我试图弄清楚如何从DOS“测试连接”到SQL Server数据库。如果连接失败,我需要检测失败。

sqlcmd -Q "select 'a test'" -S .\SQLEXPRESS

您会注意到该命令不会返回true / false值。此外,如果实例不存在,则超时。我希望这样的东西没有“超时”问题让用户等待:

if ( connectivity exists to local )  (
  setup DSN for local
) else (
  setup DSN for local\SQLEXPRESS
)

奇怪的是,即使我有一个监听实例, osql.exe -L 对我也不起作用。

1 个答案:

答案 0 :(得分:2)

超时:如果您真的想“检查连接”,我认为您无法避免超时。但请参阅下面的替代方案。

布尔响应:如果命令返回有效的errorlevel就足够了。例如,以下代码应该起作用:

osql -E -S SERVER\INSTANCE -Q ""
if ERRORLEVEL 1 (
  exit script
) else (
  setup DSN
)

超时备用:如果SQL Server始终位于本地计算机上,并且您只想检查是否安装了特定实例,请尝试查看注册表(使用reg命令。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances是您正在寻找的。