0

指定したサービス (実際には SQL Server) の起動が完了するまで待機する単純なバッチ コマンドが必要です。ファイルは、bat起動時にSQLサーバーへの接続を試みるいくつかの非サービス実行可能ファイルを実行します。そして彼らは失敗します。

いくつかの Windows シェル コマンド (" /?" キー)を試みましhelpたが、必要なアクションで応答しないようです。

4

1 に答える 1

2

残念ながら、このコマンドは存在しません。はscサービスを開始および停止でき、サービスのステータスを照会できます (この回答を参照してください)。ただし、クエリを実行しても、「サービスは実行中です」としか表示されません。サービスが開始時にどこまで到達したかを知る方法はありません。

次の 2 つの回避策があります。

  1. しばらく寝て
  2. 単純な SQL コマンドをループで実行する

最初のアプローチは役に立ちますが、問題を完全に解決することはできません。サーバーに負荷がかかると、起動に時間がかかることがあります。

2 番目のアプローチでは、タイムアウトするループを使用します (疑似コード)。

  1. カウンターをXにセット
  2. 接続してみる
  3. 接続に成功した場合は、成功して終了します
  4. デクリメントカウンター
  5. カウンタ <= 0 の場合 -> エラー
  6. スリープ 1 秒
  7. 手順 2 に進みます

安全性を高めるために、そこに を追加しsc queryて、サービスが失敗しないようにすることができます。

于 2012-10-15T08:43:11.487 に答える