SQL Server Express
エディションでジョブを作成する方法を教えてください。
SQL Server Express SQL Serverエージェントは含まれません なので、SQLエージェントジョブを作成することはできません。
できることは:
バッチファイルとSQLスクリプトファイルを作成し、Windowsタスクスケジューラを介して実行することにより、「手動で」ジョブを作成できます。
たとえば、次のような2つのファイルを使用してデータベースをバックアップできます。
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
両方のファイルを同じフォルダーに入れ、Windowsタスクスケジューラを介してバッチファイルを実行するだけです。
最初のファイルは、Windowsバッチファイルで、 sqlcmdユーティリティ を呼び出し、SQLスクリプトファイルを渡します。
SQLスクリプトファイルにはT-SQLが含まれています。私の例では、データベースをバックアップするのは1行だけですが、T-SQLを中に入れることができます。たとえば、代わりにいくつかのUPDATE
クエリを実行できます。
作成するジョブがバックアップ、インデックスメンテナンス、または整合性チェック用である場合、優れた Maintenance Solution Ola Hallengrenを使用することもできます。
多数のストアドプロシージャ(およびSQL Serverの非ExpressエディションのSQLエージェントジョブ)で構成され、 FAQ にはSQL Server Expressでジョブを実行する方法に関するセクションがあります。
SQL Server ExpressでSQL Serverメンテナンスソリューションを開始するにはどうすればよいですか?
SQL Server ExpressにはSQL Serverエージェントがありません。したがって、cmdファイルとWindowsスケジュールタスクを使用して、ストアドプロシージャの実行をスケジュールする必要があります。次の手順を実行します。
SQL Server ExpressにはSQL Serverエージェントがありません。したがって、cmdファイルとWindowsスケジュールタスクを使用して、ストアドプロシージャの実行をスケジュールする必要があります。次の手順を実行します。
MaintenanceSolution.sqlをダウンロードします。
MaintenanceSolution.sqlを実行します。このスクリプトは、必要なストアドプロシージャを作成します。
ストアドプロシージャを実行するcmdファイルを作成します。例えば:
sqlcmd -E -S。\ SQLEXPRESS -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES'、@Directory = N'C:\ Backup '、@BackupType =' FULL '" -b -o C:\ Log\DatabaseBackup.txtWindowsのスケジュールされたタスクで、cmdファイルを呼び出すタスクを作成します。
タスクをスケジュールします。
タスクを開始し、それらが正常に完了していることを確認します。
SQLエージェントジョブを作成する機能は、SQL Server Express Editionでは使用できません。別の方法は、Windowsタスクスケジューラを使用してSQLスクリプトを実行するバッチファイルを実行することです。
これを行うには、最初にsqljob.batという名前のバッチファイルを作成します
sqlcmd -S servername -U username -P password -i path of sqljob.sql
servername
、username
、password
、およびpath
を自分のものに置き換えます。
次に、sqljob.sqlという名前のSQLスクリプトファイルを作成します
USE [databasename]
--T-SQL commands go here
GO
[databasename]
をご使用のデータベース名に置き換えます。 USE
とGO
は、SQLスクリプトを記述するときに必要です。
sqlcmd
は、SQLスクリプトを実行するためのコマンドラインユーティリティです。この2つのファイルを作成した後、Windowsタスクスケジューラを使用してバッチファイルを実行します。
NB:この質問に対して以前とほぼ同じ回答が投稿されました。しかし、sqlcmd
を使用したログイン情報について指定されていないため、不完全だと感じました。
SQL Server Expressエディションにはいくつかの制限があります。1つは、ジョブをスケジュールできるSQLエージェントがないことです。
その機能を提供するいくつかのサードパーティの拡張機能があります-たとえば、チェックアウト: