Estoy tratando de determinar qué instancias de sql server / sql express he instalado (ya sea manual o programáticamente) pero todos los ejemplos me dicen que ejecute una consulta SQL para determinar esto, lo que supone que ya estoy conectado a una instancia en particular .
224
Respuestas:
En una línea de comando:
o
(Nota: debe ser una L mayúscula)
Esto enumerará todos los servidores sql instalados en su red. Hay opciones de configuración que puede configurar para evitar que se muestre un SQL Server en la lista. Para hacer esto...
En la línea de comando:
En la lista de protocolos habilitados, seleccione 'TCP / IP', luego haga clic en propiedades. Hay una casilla de verificación para 'Ocultar servidor'.
fuente
C:\> sqllocaldb i
Puede consultar este valor de registro para obtener la versión de SQL directamente:
Alternativamente, puede consultar el nombre de su instancia y luego usar sqlcmd con su nombre de instancia que le gustaría:
Para ver el nombre de su instancia:
Entonces ejecute esto:
Si está usando C ++, puede usar este código para obtener la información del registro.
fuente
Todas las instancias instaladas deberían aparecer en el complemento de servicios en la consola de administración de Microsoft. Para obtener los nombres de las instancias, vaya a Inicio | Correr | escriba Services.msc y busque todas las entradas con "Servidor SQL (Nombre de instancia)".
fuente
Get-Service | ?{ $_.Name -like "MSSQL*" }
- Consulta T-SQL para encontrar la lista de instancias instaladas en una máquina
fuente
sa
¿no es así?Sé que este hilo es un poco viejo, pero me encontré con este hilo antes de encontrar la respuesta que estaba buscando y pensé en compartirla. Si está utilizando SQLExpress (o localdb), hay una forma más sencilla de encontrar los nombres de sus instancias. En una línea de comando, escriba:
Esto enumerará los nombres de instancia que ha instalado localmente. Por lo tanto, el nombre completo del servidor debe incluir (localdb) \ delante del nombre de la instancia para conectarse. Además, sqllocaldb le permite crear nuevas instancias o eliminarlas, así como configurarlas. Consulte: Utilidad SqlLocalDB .
fuente
Si solo desea ver qué está instalado en la máquina en la que está conectado actualmente, creo que el proceso manual más directo es simplemente abrir el Administrador de configuración de SQL Server (desde el menú Inicio), que muestra todos los servicios SQL (y solo servicios SQL) en ese hardware (en ejecución o no). Esto supone SQL Server 2005 o superior; La recomendación de dotnetengineer de utilizar la Consola de administración de servicios le mostrará todos los servicios y siempre debe estar disponible (por ejemplo, si está ejecutando versiones anteriores de SQL Server).
Sin embargo, si está buscando un proceso de descubrimiento más amplio, puede considerar herramientas de terceros como SQLRecon y SQLPing, que escanearán su red y generarán un informe de todas las instancias del Servicio SQL encontradas en cualquier servidor al que tengan acceso. Ha pasado un tiempo desde que utilicé herramientas como esta, pero me sorprendió lo que encontraron (es decir, un puñado de casos que no sabía que existían). YMMV. Puede buscar en Google los detalles, pero creo que esta página tiene las descargas relevantes: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
fuente
SQL Server permite que las aplicaciones encuentren instancias de SQL Server dentro de la red actual. La clase SqlDataSourceEnumerator expone esta información al desarrollador de la aplicación, proporcionando una tabla de datos que contiene información sobre todos los servidores visibles. Esta tabla devuelta contiene una lista de instancias de servidor disponibles en la red que coincide con la lista proporcionada cuando un usuario intenta crear una nueva conexión y expande la lista desplegable que contiene todos los servidores disponibles en el cuadro de diálogo Propiedades de conexión. Los resultados que se muestran no siempre son completos. Para recuperar la tabla que contiene información sobre las instancias de SQL Server disponibles, primero debe recuperar un enumerador, utilizando la propiedad de instancia compartida / estática:
de msdn http://msdn.microsoft.com/en-us/library/a6t1z9x2(v=vs.80).aspx
fuente
SqlDataSourceEnumerator
aún no está implementado, pero está en la lista para agregar de acuerdo con el problema de GitHub .Servicio de navegador de SQL Server http://msdn.microsoft.com/en-us/library/ms181087.aspx
fuente
Si está interesado en determinar esto en un script, puede intentar lo siguiente:
Nota: grep es parte de las herramientas gnuwin32
fuente
findstr
lugar degrep
para esto.Desde la línea de comandos de Windows, escriba:
Donde "nombre_servidor" es el nombre de cualquier servidor remoto en el que desea mostrar las instancias de SQL.
Esto requiere suficientes permisos, por supuesto.
fuente
Esta consulta debería obtener el nombre del servidor y el nombre de la instancia:
fuente
Yo tuve el mismo problema. El comando "osql -L" muestra solo una lista de servidores pero sin nombres de instancia (solo se muestra la instancia de mi servidor SQL local). Con Wireshark, sqlbrowser.exe (que puede encontrar en la carpeta compartida de su instalación de SQL) encontré una solución para mi problema.
La instancia local se resuelve mediante la entrada del registro. Las instancias remotas se resuelven mediante difusión UDP (puerto 1434) y SMB. Use "sqlbrowser.exe -c" para enumerar las solicitudes.
Mi configuración utiliza 1 adaptador de red físico y 3 virtuales. Si utilicé el comando "osql -L", el sqlbrowser mostró una solicitud de uno de los adaptadores virtuales (que está en otro segmento de red), en lugar del físico. osql selecciona el adaptador por su métrica. Puede ver la métrica con el comando "ruta de impresión". Para mi configuración, la tabla de enrutamiento mostró una métrica más baja para el adaptador virtual que para el físico. Así que cambié la métrica de la interfaz en las propiedades de la red deseleccionando la métrica automática en la configuración de red avanzada. osql ahora usa el adaptador físico.
fuente
Una opción más sería ejecutar el informe de descubrimiento SQLSERVER ... vaya a los medios de instalación de sqlserver y haga doble clic en setup.exe
y en la siguiente pantalla, vaya a herramientas y haga clic en informe de descubrimiento como se muestra a continuación
Esto le mostrará todas las instancias presentes junto con características completas ... a continuación se muestra una instantánea en mi PC
fuente
Acabo de instalar Sql Server 2008, pero no pude conectarme a ninguna instancia de base de datos. Los comandos publicados por @G Mastros no enumeraron instancias activas.
Así que busqué en los servicios y descubrí que el agente del servidor SQL estaba deshabilitado. Lo arreglé configurándolo en automático y luego lo inicié.
fuente
Tuve este mismo problema cuando estaba evaluando más de 100 servidores, tenía un script escrito en C # para examinar los nombres de servicio que consisten en SQL. Cuando se instalan instancias en el servidor, SQL Server agrega un servicio para cada instancia con el nombre del servicio. Puede variar para diferentes versiones como 2000 a 2008, pero seguramente hay un servicio con nombre de instancia.
Tomo el nombre del servicio y obtengo el nombre de la instancia del nombre del servicio. Aquí está el código de muestra utilizado con el resultado de la consulta WMI:
fuente
Aquí hay un método simple: vaya a Inicio, luego Programas, luego Microsoft SQL Server 2005, luego Herramientas de configuración, luego Administrador de configuración de SQL Server, luego Configuración de red de SQL Server 2005, luego Aquí puede ubicar todas las instancias instaladas en su máquina.
fuente
Sé que es una publicación anterior, pero encontré una buena solución con PoweShell, donde puedes encontrar instancias de SQL instaladas en una máquina local o remota, incluida la versión, y también extender otras propiedades.
fuente
Los comandos
OSQL -L
ySQLCMD -L
le mostrarán todas las instancias en la red .Si desea tener una lista de todas las instancias en el servidor y no tiene ganas de hacer secuencias de comandos o programación, haga lo siguiente:
sqlsrvr.exe
imágenesLas instancias deben aparecer en la columna "Nombre de usuario" como
MSSQL$INSTANCE_NAME
.Y pasé de pensar que el servidor deficiente ejecutaba 63 instancias a darme cuenta de que ejecutaba tres (de las cuales una se comportaba como un acosador total con la carga de la CPU ...)
fuente
Obtendrá las instancias de la consulta de registro del servidor SQL "HKLM \ Software \ Microsoft \ Microsoft SQL Server \ Instance Names \ SQL"
o use SQLCMD -L
fuente
Si está dentro de SSMS, puede que le resulte más fácil de usar:
fuente