SQL Server 2008 Trigger를 연구 중이며 삽입 된 데이터를 사용하여 테이블의 데이터를 비교하는 방법에 대한 질문이 있습니다. 예를 들어 SQL Server 2008 트리거 : 입력 키로 데이터 비교
,는
|id|section_id|current_num_student|max_num_student|
|1 |1 | 23 | 23 |
|2 |3 | 21 | 29 |
|3 |5 | 50 | 50 |
current_num_student 클래스에서 학생의 수와 max_num_student 클래스에서 최대 우리가 테이블 안에 테이블 "testTb1"
이 있다고 할 수 있습니다. max_num_student는 교사가 정의하므로 숫자가 될 수 있습니다.
학생은 현재 섹션 5를 추가하려고하지만 current_num_student는 max_num_student와 같습니다. 그러므로 우리는 학생을 거부해야합니다. 쿼리가 같은입니다
..
update testTb1 SET current_num_student = current_num_student + 1 WHERE section_id = ?
"?" JSP로 사용자가 입력 한 데이터가됩니다.
때문에, 나는 정말 모르겠습니다
.. 그러나, 나는 점점 오전 오류 같은 ... 같은 트리거는 할 그
같은
CREATE TRIGGER testTrg
on dbo.testTb1
AFTER UPDATE
AS
IF EXISTS(select section_id FROM inserted i join dbo.testTb1 m on i.section_id = m.section_id
AND m.num_cur = m.num_max)
BEGIN
RAISERROR ('Can not update data because class is full', 16,1);
ROLLBACK TRANSACTION;
RETURN
END
뭔가를 시도하고 있었다 문제를 해결하는 방법.
무엇이 오류입니까? 게시하는 것을 잊어 버린 것 같습니다 ... – Diego
메시지 8197, 수준 16, 상태 4, 프로 시저 testTrg, 줄 1 'dbo.testTb1'개체가 없거나이 작업에 유효하지 않습니다. 이 오류가 발생합니다 : ( –
'testTb1'이 정말로 테이블의 이름인지 확인하십시오 'dbo' 스키마에서 생성되었는지 정말로 확신합니까? 오른쪽에 트리거를 생성하려고합니까? database? 'dbo' 접두사없이 트리거를 생성 하시겠습니까? –