2011-08-03 21 views
1

私はSQLプログラマーではありませんが、プロジェクト中に障害が発生し、挿入コマンドの後に起動するトリガーを構築する必要があります。次のような問題は次のとおりです。SQL Server 2008 - 複雑な挿入トリガー

dbo. Build 

id (PK, int, not null) 
date (smalldatetime, not null) 


dbo.TestCase 

id (PK, int, not null) 
Name (nvarchar(200), not null) 


dbo.TestCaseExecution 

id    (PK, int, not null) 
build_id  (FK, int, not null) 
testcase_id  (FK, int, not null) 
passed   (int, null)   //1 or 0 
executed  (int, null)   //1 or 0 
duration  (real, null) 
fail_percentage (real, null)   //null 

は今、私は.xmlファイルからデータを読み込み、C#で書かれたプロジェクトを介してデータベースにデータを追加します。

私は3つのテーブルを持っています。それぞれのビルドの後、私はデータベースを更新し、 '合格'と '実行'値に基づいて各テストのfail_percentageをカウントする必要があります。 insertコマンド 2.カウントfail_percentage後 1.火災は、例えば、以前の値を上基づか:

fail_percentage = (100)*(1 - (PassNumber/ExecutionNumber)) 

は、私はしますトリガを、必要とします

after reading from file: 

id build_id testcase_id passed executed duration fail_percentage 
1 1   001   1  1   12:09  null 

after trigger: 

id build_id testcase_id passed executed duration fail_percentage 
1 1   001   1  1   12:09  0 

after reading from file: 
id build_id testcase_id passed executed duration fail_percentage 
1 1   001   1  1   12:09  0 
2 2   001   0  1   12:32  null 

after trigger: 
id build_id testcase_id passed executed duration fail_percentage 
1 1   001   1  1   12:09  0 
2 2   001   0  1   12:32  50 

誰でも私に手を差し伸べることができますか?事前に

おかげで、 アルトゥル

+1

人々があなたを助けてくれるようにしたいのであれば、回答があればそれを受け入れるべきです。それは、サイトを検索している人が自分の問題に対する最善の答えをすばやく見つけるのに役立ちます。ここで人々が質問に無償で回答することはほとんど認められません。 –

+1

私は何かが足りないと思う。私はあなたにトリガーが全く必要ないように見えます。 fail_percentageを計算カラムとして定義できないのはなぜですか? – EBarr

+0

トムH.はい。しかし、私は何も拒否していません...私は何を間違えましたか? – Artur

答えて

0

OK

は、私は自分のアプリケーション内で、私は、辞書内のすべての必要なデータを格納し、トリガーを使用せずにそれをやった:

  • テスト名をキーとして、値
  • 値として渡された値と実行された値

私はパーセンテージを数えてデータベースに挿入します。

関連する問題