SQL Server Express
エディションでジョブを作成する方法を誰かに説明してもらえますか?
SQL Server Express
エディションでジョブを作成する方法を誰かに説明してもらえますか?
回答:
SQL ServerExpressにはSQLServerエージェントが含まれていないため、SQLエージェントジョブを作成することはできません。
実行できることは次のとおり
です。バッチファイルとSQLスクリプトファイルを作成し、Windowsタスクスケジューラを介してそれらを実行することにより、「手動で」ジョブを作成できます。
たとえば、次のような2つのファイルを使用してデータベースをバックアップできます。
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
両方のファイルを同じフォルダーに入れ、Windowsタスクスケジューラを介してバッチファイルを実行するだけです。
最初のファイルは、sqlcmdユーティリティを呼び出してSQLスクリプトファイルを渡すWindowsバッチファイルです。
SQLスクリプトファイルにはT-SQLが含まれています。私の例では、データベースをバックアップするのは1行だけですが、任意のT-SQLを内部に配置できます。たとえば、UPDATE
代わりにいくつかのクエリを実行できます。
作成するジョブがバックアップ、インデックスメンテナンス、または整合性チェック用である場合は、OlaHallengrenによる優れたメンテナンスソリューションを使用することもできます。
これは、一連のストアドプロシージャ(およびSQLServerの非ExpressエディションのSQLAgentジョブ)で構成されており、FAQには、SQL ServerExpressでジョブを実行する方法に関するセクションがあります。
SQL ServerExpressでSQLServerメンテナンスソリューションを開始するにはどうすればよいですか?
SQL ServerExpressにはSQLServerエージェントがありません。したがって、ストアドプロシージャの実行は、cmdファイルとWindowsのスケジュールされたタスクを使用してスケジュールする必要があります。次の手順を実行します。
SQL ServerExpressにはSQLServerエージェントがありません。したがって、ストアドプロシージャの実行は、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 ExpressEditionでは使用できません。別の方法は、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タスクスケジューラを使用してバッチファイルを実行します。
注意:以前、この質問に対してほぼ同じ回答が投稿されました。しかし、を使用してログイン情報を指定していなかったため、不完全だと感じましたsqlcmd
。
path of sqljob.sql
使用する場所に置き換えてください)。*.sql
ここでのファイルは単なるテキストファイルにすぎないことを忘れないでください。
SQL Server Expressのエディションには、いくつかの制限があります。1つの方法は、ジョブをスケジュールできるSQLエージェントがないことです。
その機能を提供するサードパーティの拡張機能がいくつかあります。例を確認してください。