会社行きたくなかったんです。

自由になりたくて会社辞めました

SQL Server

VB.net Shellで操作続行確認をスキップしてSQL Serverを停止する方法

投稿日:

今まで、次のコードでVB.netでSQL serverを開始、停止することができていたのに、なぜかできなくなってしまいました。

SQL serverを開始
Shell("cmd.exe /C ""NET START MSSQL$SQLExpress", AppWinStyle.Hide)
SQL serverを停止
Shell("cmd.exe /C ""NET STOP MSSQL$SQLExpress", AppWinStyle.Hide)

こんなときの対処法に関して考えてみました。

スポンサーリンク

まずは、状況を確認するために、コマンドプロンプトで試して見ました。

次のサービスは SQL Server (SQLEXPRESS) サービスに依存しています。
SQL Server (SQLEXPRESS) サービスを停止すると、これらのサービスも停止されます。SQL Server Launchpad (SQLEXPRESS)

この操作を続行しますか? (Y/N) [N]:

と表示されました。

ここで止まっているということですね。

Yを自動で入力できれば、先に進むことができます。
コマンドの最後に「/y」を付け加えれば良いです。

SQL serverを開始
Shell("cmd.exe /C ""NET START MSSQL$SQLExpress /y", AppWinStyle.Hide)
SQL serverを停止
Shell("cmd.exe /C ""NET STOP MSSQL$SQLExpress /y", AppWinStyle.Hide)

上のコマンドを実行しても、

システム エラー 5 が発生しました。

アクセスが拒否されました。

というエラーが発生することがあります。
これは、コマンドプロンプトの場合は、cmd.exeを管理者として実行すれば良いです。

VB.netで作成したアプリケーションの場合は、そのアプリケーションを管理者として実行すれば良いです。
ただ、毎回、「管理者として実行」を選ぶのも面倒なので、その対処法をこちらの記事に記述しました。
VB.netで作成したアプリケーションを常に管理者として起動する方法

-SQL Server

Copyright© 自由になりたくて会社辞めました , 2024 AllRights Reserved Powered by AFFINGER4.