2011-06-30 11 views
5

C#コンソールまたはASP.NETアプリケーションを定期的に実行できるかどうかを知りたいと思います。C#アプリケーションを定期的に実行してデータベースを更新する

私の目的は、自動的ににあるたら、次の手順を実行します。

1)クエリソースデータベースを。

2)は、クエリの結果を取る(1)及びが特定の値は、すでに先データベースに存在するかどうかをチェックすることによって、例えば、LINQC#を使用してそれらを操作します。

3)を宛先データベースに格納します。

アプリケーションがWindows Server 2008の上で実行する必要があり、ソースデータベースはSQL 2005 ServerのデータベースがSQL 2008 Serverのである先です。

たとえば、SSISパッケージを作成しようとしましたが、ロジックを追加できないため、ジョブは実行されません。

誰もが提案している?

+3

これはSSISで実行できます。スクリプトを書くためのスクリプトタスクがあります。 – vikramjb

+1

なぜC#を使用する必要がありますか?このロジックを1つまたは複数のストアドプロシージャにカプセル化し、SQL Agentでスケジュールすることができますか? – Yuck

+2

また、コマンドラインdotnetアプリケーションを作成し、スケジュールタスクまたはSQL Serverエージェントを使用してスケジュールすることもできます。 – vikramjb

答えて

10

これを実行するには、スケジュールされたタスクを作成する必要があります。ここをクリックしてください:コントロールパネル - >管理ツール - >タスクスケジューラ

あなたが述べたように、コンソールアプリケーションを強くお勧めします。私はSSISで@andynormancxに同意


編集

これを行うには良い方法かもしれません。ただし、スケジュールされたタスクによって実行されるコンソールアプリケーションを作成することは一般的に認められています。これは、リソース、時間、および専門知識に帰着します。必要な処理を行うためにSqlServerでパッケージを作成するには、SSISについて十分に学ぶ努力が必要かもしれません。 SSISを使用してこのタスクを実行するための完全な回答を誰かが得た場合、私は確かにその専門知識に屈するでしょう。

+3

+1 - これをコンソールアプリケーションにする必要があると付け加えたいと思います。 – Keith

+0

ロジックがシンプルな場合は、ストアドプロシージャを作成してSQL内のジョブとして実行することもできます。しかし、タスクスケジューラは最高です – fluf

+0

@Keith - 合意 – IAbstract

-1

これはもちろん可能です。しかし、私はそれをWindowsサービスにすることをお勧めします。

+3

なぜWindowsサービスをお勧めしますか? – IAbstract

+1

@IAbstract - これはバックグラウンドで実行されるので、Windowsサービスであることをお勧めします。ユーザーは毎月コードを実行することについて心配する必要はありません。一度に実行し、それについて心配しないでください。なぜあなたはそれをサービスとして書いていませんか? – Jethro

+2

スケジュールされたタスクを使用するほうが、1か月に1回タスクを実行するだけの専用サービスを提供するよりもはるかに優れています。そして、Windowsサービスを書くのはずっと簡単ですが、スケジューラを使ってタスクを実行することはまだずっと面倒です。 – andynormancx

3

事前定義された間隔で.exeを呼び出す予定のタスクを作成できます。あなたのコントロールパネルに

移動し、タスクをスケジュールして、あなたは本当に私はあなたがサービスを書く示唆C#でそれをしたい場合は、あなたのコードは、通常のコンソールアプリケーションとほぼ同じであるスケジュールされたタスク

-2

を追加]を選択します。

開始するには、次のリンクを確認してください。 C# Service step by step

+1

Windowsサービスは、このようなもののために残酷です。 – IAbstract

4

予定タスクを新しく作成することができます。それははるかに簡単で、ホイールを再発明する必要はありません。

関連する問題