我有表A和B
A有触发器,当A的字段a1更新的时候,更新B的b1
B有触发器,当B的字段把b2更新的时候,更新A的a2请问触发器怎么写,我写了触发器,但是提示嵌套超过限制32.就是说触发器进入了循环.A的触发器出发了B的触发器,B的触发器出发了A的.怎么样才能让触发器在某个特定字段更新的时候才出发??
谢谢
A有触发器,当A的字段a1更新的时候,更新B的b1
B有触发器,当B的字段把b2更新的时候,更新A的a2请问触发器怎么写,我写了触发器,但是提示嵌套超过限制32.就是说触发器进入了循环.A的触发器出发了B的触发器,B的触发器出发了A的.怎么样才能让触发器在某个特定字段更新的时候才出发??
谢谢
解决方案 »
- 如何用sql语句列出 两记录相加等于90的所有数据呢?
- 活生生难死了。。
- ODBC SQL Server DNS设置时,为什么选择用户输入登录ID总是链接不上数据库?
- 关于分组查询,书上如是说:~~~~~~~~~~~~~~
- 100分寻SQL高手:怎样以一表字段值命名一视图列?
- 根据需分割的字符串连接表,在获取数据
- 非程序问题!为什么我的sql server连接不上服务器呢
- 规整的word文档,怎么将其按字段导入数据库中,如ACCess?
- 请教一个能实现多台电脑新增单据时能自动生成不重复的存贮过程.
- 如何将用户密码加密后存入数据库表中?
- if(条件) sql语句怎么写?
- 如何删除所有以"usp_"为前缀的存储过程,用SQL语句
begin
更新b1的语句
end在B表的触发器加上个判断
if update(b2)
begin
更新a2的语句
end
CREATE TRIGGER edit
ON dbo.jxkh_dw_month
AFTER UPDATE
as
if update(tj)
declare @sj smalldatetime,@tj smallint,@dwbh numeric
begin
select @sj=sj from inserted
select @dwbh=dwbh from inserted
select @tj=tj from inserted
update jxkh_mx set edit=@tj where dwbh=@dwbh and sj=@sj
end
for update
AS
if update(fs)
declare @fs2 float,@fs float,@dwbh numeric,@sj varchar(20)
begin
select @fs=fs from inserted
select @dwbh=dwbh from inserted
select @sj=sj from inserted
select @fs2=fs from deleted
update jxkh_dw_month set fs=fs+@fs-@fs2 where dwbh=@dwbh and sj=@sj
end
ON dbo.jxkh_dw_month
AFTER UPDATE
as
if update(tj)begin
declare @sj smalldatetime,@tj smallint,@dwbh numeric --加在begin--and中间
select @sj=sj from inserted
select @dwbh=dwbh from inserted
select @tj=tj from inserted
update jxkh_mx set edit=@tj where dwbh=@dwbh and sj=@sj
end
CREATE TRIGGER UPDATE_Ta
ON Ta
FOR UPDATE
AS
IF UPDATE(ID)
BEGIN
UPDATE Ta1 SET ID=i.ID
FROM Ta1 t1,INSERTED i,DELETED d
WHERE t1.ID=d.ID
END
GOCREATE TRIGGER UPDATE_Ta1
ON Ta1
FOR UPDATE
AS
IF UPDATE(NAME)
BEGIN
UPDATE Ta SET NAME=i.NAME
FROM Ta t,INSERTED i,DELETED d
WHERE t.NAME=d.NAME
END
GO