세션 예약에 순차적 인 예약 번호를 할당하는 트리거를 만들려고합니다. 이 번호는 영화 티켓에있는 좌석 번호와 같은 약간의 티켓에 인쇄되어 있습니다. SessionBooking 레코드가 생성 될 때SQL Server 트리거를 사용하여 필드에 연속 번호를 어떻게 만듭니 까?
- , 나는 방아쇠가 BookingNumber을 할당 할. SessionBooking 논리적으로 삭제 된 경우
- 은 (에 isDeleted = 1) BookingNumber는 SessionBooking 논리적으로 삭제되면
- 에서, BookingNumber가 SessionBooking가 생성 된 다음에 재 할당되어야 NULL로 설정한다.
- 세션은 (는 삭제하지 않는 한)을 BookingNumber이 할당되면, 그것은 변경되지 않아야 논리적
- 을 삭제되지 않습니다 SessionBookings의 BookingCount
데이터베이스의 관련 부분을 유지 스키마는 다음과 같습니다.
----- -----------------
Table Session
----- -----------------
PK SessionID
int BookingCount (count of SessionBookings)
----- -----------------
Table SessionBooking
----- -----------------
PK SessionBookingID
FK SessionID
int BookingNumber (allows nulls)
bool IsDeleted (1 = deleted)
이것은 내가 지금까지 가지고있는 것입니다. 나에게 너무 복잡해 보이고 어떤 이유로 인해 SessionBooking을 만들 때 BookingNumber가 NULL로 남아 있습니다.
은 어떤 미친 이유로 나는이 다음 사용되지 않은 예약 번호를 찾을 수
어떤 이유로 나는 트리거의 SQL을 질문에 게시 할 수 없습니다. 오류가 발생합니다. –
방아쇠는 실제로'DELETE'을 위해 발사해야합니까? 테이블에 논리적 삭제 ('IsDeleted =')와 물리적 삭제가 모두 발생하는 설정은 이상합니다. –
맞아요, 실제 삭제는 레코드를 수정할 때 INSERTED 및 DELETED 테이블에 나타납니다. –