我试图弄清楚如何从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 对我也不起作用。
答案 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
是您正在寻找的。 p>