2009-10-23 31 views
1

我想弄清楚如何从DOS测试连接到SQL Server数据库。如果连接失败,我需要检测失败。我如何测试从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不为我工作,即使我有一个监听实例。

+2

顺便说一句,它不是“DOS”,而是“Windows命令行”。 :-) – Heinzi 2009-10-23 18:30:50

回答

2

超时:如果您确实想要“检查连接性”,我认为您不能避免超时。但请参阅下面的替代方案。

布尔响应:如果该命令返回有效的错误级别就足够了。例如,下面的代码应该工作:

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是你在找什么。