現在SQL Serverを学習していますが、sqlcmd
を使用してローカルデータベースに接続する際に問題が発生しています。
私がPowershellに次のように入力すると:
sqlcmd -S "(localdb)\mssqllocaldb"
次のエラーメッセージが表示されます。
Sqlcmd:エラー:Microsoft ODBC SQL Serverのドライバー13:SQL Serverネットワークインターフェイス:指定されたファイルが見つかりません。
Sqlcmd:エラー:Microsoft ODBC SQL Server用ドライバー13:ログインタイムアウトの期限が切れました。
Sqlcmd:エラー:Microsoft ODBC SQL Serverのドライバー13:SQL Serverへの接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできません。インスタンス名が正しいかどうか、およびSQL Serverがリモート接続を許可するように構成されているかどうかを確認してください。詳細については、SQL Server Books Onlineを参照してください。
SQL Server Management Studioを使用すると、ローカルデータベースに接続できます。インスタンス名パイプを使用すると、ローカルデータベースに接続することもできます。
Windows 10 x64、Visual Studio Community、およびSQL Server Management Studio 2016のクリーンインストールがあります。
ODBCドライブ13に driver bug がありました。ODBCドライバー13.1アップデートをインストールすると、これが修正されます。
ここからドライバーをダウンロード できます。
その後、cmdまたはpowershellで使用できるようになります。
sqlcmd -S "(localdb)\MSSQLLocalDB" -i C:\path\to\file.sql
このエラーが発生しました この記事 で問題が解決しました。 「Visual Studio 2017&Pathing」と書かれているところから読み始めてください。
実際のエラーメッセージは、パス変数が古いバージョンのsqlcmdツールを指しているために発生します。すべてのSQL Expressエンジンで機能するものは次の場所にあります。
C:\ Program Files\Microsoft SQL Server\110\Tools\Binn \
そのディレクトリでsqlcmdを使用するとうまくいきました。
試す
sqlcmd -S ".\mssqllocaldb"
または
sqlcmd -S ".\mssqllocaldb -uYOUR_User -pYOUR_PASSWORD"