我正在尝试创建一个触发器,将顺序预订号分配给会话预订。这些数字印在门票上,有点像电影票上的座位号。
- 创建 SessionBooking 记录时,我希望触发器分配 BookingNumber。
- 如果 SessionBooking 被逻辑删除(IsDeleted = 1),则 BookingNumber 应设置为 NULL
- 当 SessionBooking 被逻辑删除时,BookingNumber 应该在下次创建 SessionBooking 时重新分配。
- Session 还维护一个 BookingCount 的 SessionBookings 没有被逻辑删除
- 分配 BookingNumber 后,不应更改(除非将其删除)
数据库模式的相关部分是:
----- -----------------
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。
出于某种疯狂的原因,我无法将其发布为文本,我必须使用屏幕截图...