- 可否给出一个microsoft sql2005 行级触发器的例子~急用
问题假设,一个宾馆客房管理系统中,有一个客户预订表,希望能用触发器实现插入每条记录的时候可以自动跟新此记录的时间,即将当前的系统时间插入到对应的列中去,但是小弟目前实现的只能更新所有记录的时间,即完成插入后,所有记录的时间都是当前系统时间,请教如何解决此问题。现将建表代码和触发器代码拷贝如下: 预定信息表(客户号, 客房号,预定时间,计划入住时间,押金,预定方式) Create table PreOrderInfo( cNo CHAR(8), rNo CHAR(5), pTime CHAR(20), planTime Char(10), deposite INT, planPeriod CHAR(3), preType CHAR(10), PRIMARY KEY(cNo,rNo,pTime), FOREIGN KEY(cNo) REFERENCES Customer(cNo), FOREIGN KEY (rNo) REFERENCES Room (rNo) ); 向表中插入数据: insert into PreOrderInfo values('20070002','00002','2009-12-01 17:11:00','2009-12- 12',6200,'31','on line'); insert into PreOrderInfo values('20070003','00001','2009-12-11 13:11:00','2009-12- 12',200,'1','counter'); insert into PreOrderInfo values('20070003','00005','2009-12-11 13:11:00','2009-12- 12',1170,'9','on line'); insert into PreOrderInfo values('20070004','00001','2009-12-21 13:11:00','2009-12- 22',800,'2','telephone'); insert into PreOrderInfo values('20070005','00004','2009-12-31 08:55:30','2010-01- 13',1200,'6','on line'); insert into PreOrderInfo values('20070007','00001','2010-01-11 09:23:00','2010-01- 12',1600,'4','counter'); insert into PreOrderInfo values('20070006','00006','2010-01-01 12:01:00','2010-01- 07',900,'5','on line'); auto_time 自动填入系统时间。 简要描述:当在预定表上有数据插入时,系统自动更新这一条记录更新的时间,并把当前系统时间填 入pTime列中,这是一个行级触发语句。插入数据的时候自动填入系统时间。 同样的在入住登记表和退定表中同样涉及系统自动填入时间,可以使用类似的触发器。 USE [Hotel] GO /****** 对象: Trigger [dbo].[auto_time] 脚本日期: 01/07/2010 21:51:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[auto_time] on [dbo].[PreOrderInfo] for insert as begin update PreOrderInfo set pTime = getDate(); end;
-
提问者: MyPrice网友 | 提问时间: 2010-01-08 10:32:27 | 回复(0)
我来回答