SQL Server 2008 R2 Expressエディションのデータベースで動作するASP.NET MVCアプリがあります。データベース内の一部のレコードを更新するための定期的なタスクを実行する必要があります。
残念ながら、Express EditionにはSQLエージェントがありません。
どのアプローチをお勧めしますか?
SQL Server Expressユーザーにとって非常に便利なソリューションであるExpressMainを使用します。
プロジェクトの説明
このプロジェクトは、SQL Server 2005/2008/2008R2 Express Editionのデータベースのバックアップとメンテナンスを自動化するための2つのユーティリティを維持しています。これらは、SQL Server 2000に付属しているが、SQL Server 2005/2008/2008R2用に更新されたsqlmaintアプリケーションに基づいています。スタンドアロンのVB.NETコンソールアプリケーションとSQLストアドプロシージャがあり、SMO(SQL管理オブジェクト)またはTSQLを介してデータベースのバックアップとメンテナンスタスクを自動化する方法を示します。
これらの2つの記事は、それを使用するのに役立ちます
http://www.sqldbatips.com/showarticle.asp?ID=27
http://www.sqldbatips.com/showarticle.asp?ID=29
スタンドアロンSQLエージェント オープンソースプロジェクトをチェックアウトできます。ネイティブSQLエージェントテーブルとプロシージャ(SQL Expressにまだ存在する)を使用して、SQLエージェント自体を置き換えるジョブを格納します。 T/SQLとDosコマンドについては、エンジンはかなりよくできています。 SSISなどはまだ完了していません。また、エディターは約1/2しか完了していませんが、ジョブを実行するエンジンは重要な部分です。
Windows組み込みのタスクスケジューラを使用して、SQL Expressに付属のコマンドラインツールを使用してSQLスクリプトを実行することができます-私はそれを信じています http://msdn.Microsoft.com/en-us/library/ ms162773.aspx は、Expressを含むすべてのSQL 2005および2008エディションに含まれています。
このために特別にユーザーを設定し、Windows統合認証を介してログに記録されたスクリプトを実行することをお勧めします。ユーザー/パスベースの認証を使用する場合は、特にマシンが共有されている場合は、パスワードを含むファイルを適切に保護してください。ユーザーがデータベースで何を実行できるかについて細かく設定されているだけでなく、別のWindowsユーザーとしてタスクを実行する他の利点は、コンソールウィンドウが開いていないことを確認する必要がないことです。ログイン中に実行されます(自分で実行すると、コンソールウィンドウがポップアップ表示され、タスクの実行時にフォーカスを要求する場合があります)。
Teratraxジョブスケジューラで過去に成功したことがあります。 http://www.teratrax.com/tjs/
基本的に、SQLスクリプトを設定してスケジュールどおりに実行できます。非常に使いやすく、スケジュールを管理するための便利な小さなGUIがあります。また、成功/失敗などの通知に使用できるメール通知システムが組み込まれています。
前述のソリューションの欠点は、99ドルの値段が付いていることですが、試してみたい無料トライアルがあります。