SQL データベース ファイルをコピーできるように、MS SQL サービスを停止/開始する方法を知りたいです。手動で行う方法はわかっていますが、スクリプトから実行したいと思います。
答え1
データ ファイルをコピーする代わりに、バックアップ コピーを作成してはどうでしょうか。そうすれば、SQL Server サービスを停止/開始してダウンタイムが発生することがなくなります。たとえば、次のようになります。
BACKUP DATABASE [databasename]
TO DISK = 'D:\BackupFiles\Database.bak'
WITH COPY_ONLY
GO
このCOPY_ONLY
フラグは、バックアップが(驚いたことに)コピーのみであり、差分バックアップ チェーンを中断しないことを指定します。
答え2
停止の場合:
NET STOP MSSQLSERVER
開始するには:
NET START MSSQLSERVER
ただし、データベース ファイルをコピーする場合 (バックアップ目的だと思います)、MS SQL SERVER を既に使用している場合は、バックアップ スキーマを含むメンテナンス プランの使用を検討することをお勧めします。SQL Express の場合は、カスタム スクリプトが必要です。データベースのバックアップが完了すると、出力ファイルはロックされず、バックアップ デバイスなどの任意の場所に保存できます。