2011-08-03 4 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

Tom H. 그렇습니다. 그러나 나는 거부했습니다. 내가 뭘 잘못 했습니까? – Artur

답변

0

확인

내 응용 프로그램 내에서 내가 사전에 필요한 모든 데이터를 저장, 트리거를 사용하지 않고 그것을했다 : 키로

  • 테스트 이름을 값
  • 값으로 전달 된 값 및 실행 된 값

그 다음 백분율을 계산하여 데이터베이스에 삽입합니다.