2016-09-13 15 views
0

SQL Serverからビューまたはテーブルをインポートできる計画ツールがあります。私はテーブル 'tblPlanning'から 'to plan'というステータスのレコードのみをインポートします。計画ツールから実行されたインポート後、インポートされたレコードのステータスが「計画」になります。 ビューvExportPlanningが呼び出された後にストアドプロシージャを実行するトリガを使用することができたと考えましたが、トリガはUPDATE/DELETE/INSERTステートメントに対してのみ有効です。 誰かが正しい方向に私を向けることができますか?ありがとう! *交換してくださいここで。選択しながらSQL Serverでクエリを実行した後の更新

+1

ストアドプロシージャの最後に、処理されたレコードのステータスを更新するための更新ステートメントを書き込みます。 –

+0

@Prdpが述べたように、これはSPでなければなりません。あなたの計画ツールはSPを発射できますか?あなたがしたくないことは、計画ツールでエラーが発生した場合にレコードが完全に自動的に更新されるようにすることです(つまり、ソフトウェアがレコードをロードするとクラッシュしますが、SQLサーバーはレコードを更新します) – JohnHC

答えて

0

あなたはこれを行うことができますか「*」私はあなたとすべての列を選択することになるクエリで

Select col1,col2,....,'Planned' as status from tblPlanning 
where status='Plan' 

以下のように、あなたはしばらくの選択を行うことをお勧め

を更新します列名で指定します。

0

データが選択された直後にデータを更新しないでください。確かに、ビューはアプリケーションによって読み取られ、データを処理し、ビューを読むだけで行を更新します。これは、何かを同期させる簡単な方法のように聞こえるかもしれませんが、ビューをテストしたいと思っていると想像してください。いくつかのデータを取得しようとしたので、誤って更新された行に問題が発生します。

「良い」デザインに関しては、選択前/後で何かをトリガすることは意味がありません。

(私が完全に同意した)他のものとして、テーブルを返すストアドプロシージャまたは関数を使用する必要があります。後者の場合、基本的にはビューのように動作する関数がありますが、返されたデータを更新するコードを実行する機会があります。

アプリケーションのどのような更新と挿入によって同様の問題が発生するかによって、カーソルの概念を見ることもできます。

関連する問題