大家帮我做一个触发器,让我学习一下,我恳给分,谢谢了
我在设计酒吧管理的数据库(部分)出现点问题想问问大家。
CREATE TABLE [dbo].[room] ( --房台表,记录所有的房台,名称,类型,大小等信息
[room_id] [char] (3) NOT NULL ,
[name] [nvarchar] (10) NULL ,
[type] [nvarchar] (10) NULL ,
[content] [int] NULL ,
[status] [int] null ---状态字段*****
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[roomstatus] ( --房台状态表,
[state_id] [int] (3) NOT NULL ,
[name] [nvarchar] (10) NULL
) ON [PRIMARY]
GO
0,空闲
1,预订
2,预订+预订
4,使用
5,使用+预订
8,使用+使用
6,禁用
7,禁用+预订
10,禁用+使用
CREATE TABLE [dbo].[guest] (--客人表,即使用的表,在结帐前,closetime是为null
[guest_id] [char] (8) NOT NULL ,
[name] [nvarchar] (50) NOT NULL ,
[number] [int] NULL ,--人数
[room_id] [char] (3) NULL ,
[bill_id] [char] (2) NULL ,--单类型,与问题无关
[open_time] [smalldatetime] NULL ,
[close_time] [smalldatetime] NULL ,
[serverop] [varchar] (5) NULL ,--服务生
[op_id] [varchar] (5) NULL ,--操作员
[note] [nvarchar] (36) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[orderdishes] (--客人点菜表,
[statement_id] [char] (10) NOT NULL ,
[guest_id] [char] (8) NOT NULL ,
[type_id] [char] (3) NOT NULL ,
[food_id] [char] (5) NOT NULL ,
[name] [nvarchar] (20) NOT NULL ,
[amount] [int] NOT NULL ,
[price] [money] NOT NULL ,
[discount] [decimal](3, 2) NOT NULL ,
[specialneed] [nvarchar] (30) NULL
) ON [PRIMARY]
GO
Reserve表--预订表
reserve_id,room_id,deposit,opentime, iscancel,note
押金 预开台时间 是否取消
nouse表--禁用表
nouse_id,room_id,starttime,endtime,note
我现在想做若干个触发器去实现:
1、如果当向预订表添加记录,触发它修改room表中status字段为对应值(roomstatus)
***注意的是,当预订表有此房台的预订超过两条时,就不改它的值了(也就是2)
2、当修改预订表时,也就是iscancel为真的(取消),再触发它修改room表中status字段为对应值(roomstatus)
大家帮我一把,我对触发器只明白定义,还真没做过,大家帮我做一个,让我学学,如果可以,也可以做做禁用表的触发器,谢谢大家了