¿Cómo puedo probar la conectividad de SQL Server desde DOS?
-
06-07-2019 - |
Pregunta
Estoy intentando descubrir cómo " probar la conectividad " a una base de datos de SQL Server desde DOS. Si la conexión falla, necesito detectar el fallo.
sqlcmd -Q "select 'a test'" -S .\SQLEXPRESS
Notarás que ese comando no devuelve un valor verdadero / falso. Además, si la instancia no existe, se agota el tiempo. Quiero algo como esto que no tenga un " tiempo de espera " problema que hace esperar al usuario:
if ( connectivity exists to local ) (
setup DSN for local
) else (
setup DSN for local\SQLEXPRESS
)
Extrañamente, osql.exe -L no funciona para mí aunque tengo una instancia de escucha.
Solución
Tiempo de espera : no creo que pueda evitar un tiempo de espera, si realmente desea " comprobar la conectividad " ;. Pero vea a continuación una alternativa.
Respuesta booleana : es suficiente si el comando devuelve un nivel de error válido. Por ejemplo, el siguiente código debería funcionar:
osql -E -S SERVER\INSTANCE -Q ""
if ERRORLEVEL 1 (
exit script
) else (
setup DSN
)
Alternativa sin tiempo de espera : si el servidor SQL Server siempre se encuentra en la máquina local y solo desea comprobar si una instancia específica está instalada o no, intente buscar en el registro (usando el comando reg
). HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ InstalledInstances
es lo que está buscando.