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


10

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

PS C:\> sqlcmd -S localdb\MSSQLLocalDBそしてPS C:\> sqlcmd -S .\localdb\MSSQLLocalDB、このエラーが発生し:

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

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

PS C:\> sqlcmd -S localdb このエラーが発生します:

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

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

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

回答:


8

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

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

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

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


含む(localdb):それはコマンドとして、それを分離し、そしてそれが次のエラーを与えるように括弧のルックスに用語「localdbは」は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。
jmk22

@ jmk22次に、サーバー名全体を二重引用符で囲みます-S "(localdb)\MSSQLLocalDB"。それがうまくいかない場合は、括弧をエスケープしてみることができます。しかし、どういうわけかそれらの括弧はそこにある必要があります。
ソロモンルツキー

1
引用はそれをしました、ありがとう!これを反映するように回答を編集しました。
jmk22
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.