web-dev-qa-db-ja.com

PowerShellでSQLCMDを介してLocalDBに接続する

SQLCMDユーティリティを使用して、PowerShellを介してコンピューター上の "localdb\MSSQLLocalDB"サーバーにアクセスしようとしています。 PowerShell v5、.NET v5.0を使用しています。MicrosoftSQL Server Management Studio 2014で接続すると、サーバー名は(localdb)\MSSQLLocalDBになります。

PS C:\> sqlcmd -S localdb\MSSQLLocalDBおよびPS C:\> sqlcmd -S .\localdb\MSSQLLocalDBは、次のエラーを引き起こします。

Sqlcmd:エラー:Microsoft ODBC SQL Serverのドライバー11:SQL Serverネットワークインターフェイス:指定されたサーバー/インスタンスの検索エラー[xFFFFFFFF]。

Management StudioでSELECT @@ServerNameを使用してサーバー名を照会し、上記のコマンドの-Sの後にそれを使用すると、同じエラーが発生しました。

PS C:\> sqlcmd -S localdbは次のエラーを出します:

Sqlcmd:エラー:Microsoft ODBC SQL Serverのドライバー11:名前付きパイププロバイダー:SQL Serverへの接続を開けませんでした[53]

その他の注意事項:サーバーに接続し、C-#コンソールアプリでSystem.Data.SqlClientを使用してtestdb01という名前のデータベースを次の接続文字列で操作できます。

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"
10
jmk22

インスタンス名の大文字小文字は関係ありません。

あなたは試す必要があります:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

"localdb"の部分はかっこで囲む必要があります。これは、接続文字列で参照されたときにインスタンスを自動的に起動できるようにするSQL Server Express LocalDB固有のAPIを指す特別な構文です。インスタンス名全体を二重引用符で囲む必要があります。上記のコマンドラインは、少なくともPowerShellの外では私にとっては機能します。

8
Solomon Rutzky