16

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 (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;"
Solomon Rutzky
  • 65,256
  • 6
  • 135
  • 267
jmk22
  • 285
  • 1
  • 3
  • 6

1 Answers1

17

The casing of the instance name does not matter.

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.

Solomon Rutzky
  • 65,256
  • 6
  • 135
  • 267
  • Including `(localdb)` in parenthesis looks like it separates it as a command, and it gives the following error: _The term 'localdb' is not recognized as the name of a cmdlet, function, script file, or operable program._ – jmk22 Dec 24 '15 at 18:57
  • 1
    @jmk22 Then try putting the entire server name in double-quotes: `-S "(localdb)\MSSQLLocalDB"`. If that doesn't work then we can try escaping the parenthesis. But somehow those parens need to be there. – Solomon Rutzky Dec 24 '15 at 19:30
  • 1
    The quotations did it, thanks! I've edited your answer to reflect this. – jmk22 Dec 24 '15 at 19:36