patternsqlMajor
Connect to LocalDB via SQLCMD in PowerShell
Viewed 0 times
connectpowershelllocaldbviasqlcmd
Problem
I'm trying to access the "localdb\MSSQLLocalDB" server on my computer through PowerShell with the SQLCMD utility. I'm using PowerShell v5, .NET v5.0, and the server name is
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : SQL Server
Network Interfaces: Error Locating Server/Instance Specified
[xFFFFFFFF].
I queried the server name in Management Studio with
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Named Pipes
Provider: Could not open a connection to SQL Server [53]
Other notes: I'm able to connect to the server and work with a database named testdb01 in a C# console app using
(localdb)\MSSQLLocalDB when I connect to it in Microsoft SQL Server Management Studio 2014.PS C:\> sqlcmd -S localdb\MSSQLLocalDB and PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB result in this error: Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : SQL Server
Network Interfaces: Error Locating Server/Instance Specified
[xFFFFFFFF].
I queried the server name in Management Studio with
SELECT @@ServerName and used that after the -S in the above command and got the same error.PS C:\> sqlcmd -S localdb gives this error:Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Named Pipes
Provider: Could not open a connection to SQL Server [53]
Other notes: I'm able to connect to the server and work with a database named testdb01 in a C# console app using
System.Data.SqlClient with this connection string: "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"
Solution
The casing of the instance name does not matter.
You need to try:
The "localdb" part needs to be enclosed in parenthesis as that is a special syntax that points to a SQL Server Express LocalDB-specific API that allows for automatic instance start-up upon being referenced in a connection string. The whole instance name needs to be enclosed in double quotes. The command-line shown above works for me, at least outside of PowerShell.
You need to try:
sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01
The "localdb" part needs to be enclosed in parenthesis as that is a special syntax that points to a SQL Server Express LocalDB-specific API that allows for automatic instance start-up upon being referenced in a connection string. The whole instance name needs to be enclosed in double quotes. The command-line shown above works for me, at least outside of PowerShell.
Context
StackExchange Database Administrators Q#124544, answer score: 22
Revisions (0)
No revisions yet.