急!!!求助:触发器问题
我是sqlserver的新手,现有一基表 create table exam (
sj datetime,
sz integer);
需要写一触发器,当插入sz列数据时,获取当前系统事件插入本行的sj字段中,哪位高手帮帮忙!!!
在oracle数据库中有before关键字可用,但是我在sqlserver的手册中只看到after关键字
问题点数:50、回复次数:6Top
1 楼fwxj()回复于 2004-12-04 16:46:13 得分 0
sorry,是获取当前系统时间,不是事件Top
2 楼zjcxc(邹建)回复于 2004-12-04 16:49:25 得分 50
create table exam (
sj datetime default getdate(), --写上默认值
sz integer);
go
--插入用
insert exam(sz) values(1)
--显示结果
select * from exam
go
--删除测试
drop table exam
/*--测试结果
sj sz
------------------------------------------------------ -----------
2004-12-04 16:52:43.507 1
(所影响的行数为 1 行)
--*/Top
3 楼Frewin(frewin)回复于 2004-12-04 16:49:41 得分 0
Create Trigger tr_insert on exam
instead of insert --插入之前的操作
asTop
4 楼zjcxc(邹建)回复于 2004-12-04 16:51:04 得分 0
--如果要用触发器
create table exam (
sj datetime,
sz integer);
go
--触发器
create trigger tr_insert on exam
instead of insert
as
insert exam select getdate(),sz from inserted
go
--插入用
insert exam(sz) values(1)
--显示结果
select * from exam
go
--删除测试
drop table exam
/*--测试结果
sj sz
------------------------------------------------------ -----------
2004-12-04 16:54:17.783 1
(所影响的行数为 1 行)
--*/Top
5 楼zjcxc(邹建)回复于 2004-12-04 16:51:50 得分 0
如果只要时间,不要日期,将getdate() 改为 convert(char,getdate(),108)Top
6 楼fwxj()回复于 2004-12-06 09:31:17 得分 0
谢谢!!!!!Top




