关于触发器的源代码及解决方案希望大家能讨论一下
现有两个表如下CREATE TABLE sp --商品表
(
spbm varchar(6) not null --商品编码
primary key
check(spbm like '[1-9][0-9][0-9][0-9][0-9][0-9]'),
spmc varchar(100) not null, --商品名称
spjm varchar(100), --商品简码
jldw varchar(10), --计量单位
gg varchar(30), --规格型号
bhq int --保换期
check(bhq>0 or bhq is null),
bxq int --保修期
check(bxq>0 or bxq is null),
zxjj decimal(18,3), --最新进价
kcsl smallint, --库存数量
kcje decimal(18,3), --库存金额
lb varchar(3) not null --所属类别
references lb(lbbm),
pp varchar(3), --品牌
szr varchar(10) not null, --操作人,指第一次插入数据时的人员名称
crrq datetime not null, --插入的时间
zt bit not null default 1 --状态 1-正常,0-已终止
)
CREATE TABLE gxxx --更新信息表
(
gxb varchar(20) not null, --被更新的表
gxbm varchar(10) not null, --被更新的数据的编码
gxzd varchar(20) not null, --被更新的字段
ynr varchar(200), --原内容
xnr varchar(200), --新内容
gxrq datetime, --更新日期
gxry varchar(10) --更新人员
primary key (gxb,gxbm,gxzd,ynr,xnr,gxrq)
)
我想在sp表上建一个触发器,其作用是如有sp表或其它表中某个字段被更新,那么自动在gxxx表中插入一第记录,其内容分别为注释中的内容。我的问题是1,我一开始用的是updated(column)判断,但代码太长了,我觉得是我个人的水平不够,没找到好的办法,所以真心的请教各位有没有更好的方法。2,怎么插入更新人员这个字段,本身sql sever中没有这个变量,这个变量是我在登录我自己开发的程序中的用户名(我使用的是delphi),那么如何将这个变量祭奠传递到触发器中?其实也就可以说是给触发器加个参数的问题。(在我看过的书中触发器是没有参数的。)
先谢每一个看贴的人吧。