web-dev-qa-db-ja.com

SQL Server Expressエディションでジョブを作成する方法

SQL Server Expressエディションでジョブを作成する方法を教えてください。

64
Pearl

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スケジュールタスクを使用して、ストアドプロシージャの実行をスケジュールする必要があります。次の手順を実行します。

  1. MaintenanceSolution.sqlをダウンロードします。

  2. MaintenanceSolution.sqlを実行します。このスクリプトは、必要なストアドプロシージャを作成します。

  3. ストアドプロシージャを実行する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.txt

  4. Windowsのスケジュールされたタスクで、cmdファイルを呼び出すタスクを作成します。

  5. タスクをスケジュールします。

  6. タスクを開始し、それらが正常に完了していることを確認します。

110

SQLエージェントジョブを作成する機能は、SQL Server Express Editionでは使用できません。別の方法は、Windowsタスクスケジューラを使用してSQLスクリプトを実行するバッチファイルを実行することです。

これを行うには、最初にsqljob.batという名前のバッチファイルを作成します

sqlcmd -S servername -U username -P password -i path of sqljob.sql

servernameusernamepassword、およびpathを自分のものに置き換えます。

次に、sqljob.sqlという名前のSQLスクリプトファイルを作成します

USE [databasename]
--T-SQL commands go here
GO

[databasename]をご使用のデータベース名に置き換えます。 USEGOは、SQLスクリプトを記述するときに必要です。

sqlcmdは、SQLスクリプトを実行するためのコマンドラインユーティリティです。この2つのファイルを作成した後、Windowsタスクスケジューラを使用してバッチファイルを実行します。

NB:この質問に対して以前とほぼ同じ回答が投稿されました。しかし、sqlcmdを使用したログイン情報について指定されていないため、不完全だと感じました。

31
geo

SQL Server Expressエディションにはいくつかの制限があります。1つは、ジョブをスケジュールできるSQLエージェントがないことです。

その機能を提供するいくつかのサードパーティの拡張機能があります-たとえば、チェックアウト:

15
marc_s