database - framework - oledb sql server 2012 connection string
Cadenas de conexión del servidor SQL-dot(".") O "(local)" o "(localdb)" (1)
Recientemente tuve que instalar SQL Server y restaurar una base de datos en 2 computadoras portátiles, la primera me tomó un par de días para averiguar, la segunda en la que todavía estoy luchando.
En ambos estaba obteniendo este error aquí:
Se ha producido un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server)
Todavía estoy obteniéndolo en el segundo.
Investigué mucho y seguí todos los pasos enumerados en StackOverflow y otros sitios, como asegurar que SQL Server tenga TCP y Named Pipes ejecutándose, asegurando que SQL Server permitiera conexiones remotas y todos los demás pasos de solución de problemas que pudiera encontrar.
Al final descubrí que solo estaba ingresando la cadena de conexión incorrecta en la primera computadora portátil. (localdb)/MSSQLSERVER2012
usar (localdb)/MSSQLSERVER2012
(o algo así) como dice hacer en tantos sitios. Comenzó a funcionar cuando utilicé ./MSSQLSERVER2012
. Pensé que todos señalarían el mismo lugar pero obviamente no.
Realmente quiero evitar este problema nuevamente, y descubrir cómo configurar mi laptop. ¿Cómo puedo saber si debería estar usando ./SQLSERVER2012
, (local)/SQLSERVER2012
, (localdb)/SQLSERVER2012
, etc.? ¿Hay una manera simple de descubrir esto usando una herramienta de línea de comandos como SqlLocalDb
? ¿Y cómo se establece esto en primer lugar?
.
y (local)
y YourMachineName
son equivalentes, refiriéndose a su propia máquina.
(LocalDB)/instance
es solo SQL Server 2012 Express .
Las otras partes dependen de cómo se instale. Si instala con un nombre de instancia , debe deletrear el nombre de instancia (SQL Server Express utiliza de manera predeterminada el nombre de instancia de SQLEXPRESS
, mientras que otras ediciones de SQL Server intentarán usar el nombre de instancia). instancia predeterminada sin ningún nombre especial).
Entonces, para que un SQL Server "normal" esté instalado con todas las opciones predeterminadas en su máquina local, use
. or (local) or YourMachineName
Para SQL Server Express instalado con todas las configuraciones predeterminadas, use
./SQLEXPRESS or (local)/SQLEXPRESS or YourMachineName/SQLEXPRESS
Si observa el Administrador de configuración de SQL Server (lo inicia desde el menú de inicio), verá:
Si la entrada del SQL Server
lee (MSSQLSERVER)
entonces esa es la instancia predeterminada (sin ningún nombre); de lo contrario, vería el nombre de la instancia entre paréntesis