何を試してもSQLCMDが機能しない


10

私が何をしようとも、SQLCMDを機能させることができません。サイズが200mb +で、SQLサーバーアプリケーションから実行できないスクリプトを実行しようとしているので、SQLCMDを介して実行する必要がありますが、スクリプトをログインまたは実行しようとすると、スクリプトはすぐに閉じます。

私はmsdnによってsqlcmdユーティリティを追跡しました。

信頼できるコマンドSQLCMD -EI getを使用してそれを実行しようとしました:

Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: Could not open a connection to SQL Server [2]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..

明示的なサーバー、ユーザー名、パスワードの宣言を試してみました:

C:\Users\MyUserName\Documents>SQLCMD -S DESKTOP-1N3OD6V\SQLEXPRESS -U DESKTOP-1N3OD6V\MyUserName-P MyPassword
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login failed for user 'DESKTOP-1N3OD6V\MyUserName'..

回答:


23

SQLCMDは、サーバー名を指定せずに呼び出されると、ローカルマシンのデフォルトのインスタンスに接続しようとします。ない場合は、最初に発生したエラーが表示されます。-Sパラメータを使用してサーバー名を指定します。

Windows認証を使用するには、-Eフラグを使用します。ユーザー名やパスワードを入力する必要はありません。
例: SQLCMD -Smyserver\myinstance -E

SQL Server認証を使用するには、-Uおよび-Pパラメーターを使用して資格情報を提供します。
例: SQLCMD -Smyserver\myinstance -UsomeUser -PhisPassword

指定した-U場合、Windowsユーザー名は使用できません。これはSQL Serverログイン用です。別のWindowsユーザーを偽装する場合は、まずそのユーザーを偽装してコマンドプロンプトを起動します。

例:

  1. コマンドプロンプトを開く
  2. タイプ runas /USER:domain\username cmd
  3. ユーザーのパスワードを入力します
  4. 走る SQLCMD

cmdのリンクを右クリックして[別のユーザーとして実行...]を選択すると、同じ結果が得られます。


これは私にインターネットを精査する長い夜を救いました。ありがとうございました!
Rhys Johns

これを解決するために費やした年齢。ありがとうございました!
Joel Murphy、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.