sql server
create trigger trigger_name
on tableName
for update
as
begin
declare @id varchar(36)
declare @name varchar(100)
select @id = pid,@name=name from Inserted -- 给id赋值,Inserted就是对应你修改的记录
--下面你就可以使用id和name了
update table_name2 set param1='XXX' where pid=@id
end
你可以在查询分析器中对相应的表执行一条数据,看看触发是否报错,然后确定问题原因,才好做相应的处理
比较常见的可能是:
在触发器A中触发了另一个触发器B的话,那么,触发器中就不能有相应的批量 *** 作
例如,销售单通过触发器A来维护库存数据,库存数据变化通过触发器B来维护库存预警,当销售单添加时,销售单插入触发器可能是这样写的:
Update 库存表Set 数量=数量-Inserted数量
Where 库存表物料编号=Inserted编号
单触这个触发器是没有问题的如果再添加库存表的更新触发器:
Insert Into 库存预警表()Select
From Inserted
Inner Join 物料表 On Inserted物料编号=物料表编号
Where 物料表预警存量<=Inserted数量
And Inserted物料编号 Not In (--取预警表中有效的物料编号
Select Distinct 物料编号
From 库存预警表
Where 有效=1)
那么,销售单插入触发器就会出错,也就无法向销售单插入记录了
解决办法是,将销售单插入触发器里的Update 语句改成一个循环,每次更新库存表一条记录,其主体大约是这个样子:
--定义游标--循环
--Update 库存表
-- Set 数量=数量-@数量
-- Where 库存表物料编号=@编号
这样,就会正常了
vfp提供的触发器包括添加,删除,修改触发器,表示分别在执行这三项 *** 作时会被触发的条件。
update,insert,delete的sql命令都不需要打开表,只要在路径里能找到表就可以了,就在命令窗口里输入就可以了,当然也可以在程序中输入语法错误,肯定你有输错的地方。
VFP,VisualFoxPro,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统,它提供了功能完备的工具,极其友好的用户界面,简单的数据存取方式,独一无二的跨平台技术,交肯有良好的兼容性,真正的可编译性和较强的安全性,是目前最快捷,最实用的数据库管理系统软件之一。
ALTER TRIGGER [dbo][T_Update]
ON [dbo][C_Detail]
FOR UPDATE
AS
DECLARE @INCODE INT;
DECLARE @SUM INT;
SELECT @INCODE = INCODE FROM deleted;
IF (exists (SELECT FROM C_Head WHERE INCODE = @INCODE))
BEGIN
SELECT @SUM=SUM(1) FROM C_Detail WHERE INCODE = @INCODE and ISUSE='N';
UPDATE C_Head SETCANUSER=@SUMWHERE INCODE = @INCODE;
END
楼主 触发器顾名思义 是更改 *** 作 而触发的事件
触发器是不做查询 *** 作的 没有意义
如果你想查询原值及新值 那么你需要新增加一个字段 储存原值
然后 你什么时候查询 就可以自己写查询语句了
如果有什么疑问可以随时找我
希望解决了楼主的疑问
用触发器吧
create trigger trigger_before_planinfo_update
before update
ON BB FOR EACH ROW
BEGIN
insert into aa values ('1000');
END
以上就是关于如何用触发器实现在数据库中更改一个表的某个字段,同时更新另外两个表中相同的字段全部的内容,包括:如何用触发器实现在数据库中更改一个表的某个字段,同时更新另外两个表中相同的字段、师兄,我想向您请教个问题,我的sQL数据库,之前用了几个触发器来修改、vfp触发器设置可以修改前10条记录怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)