级联更新问题.解决了,加到200分. 哎,难。create trigger i_t on t for insert as select object_name(parent_obj) from sysobjects where id = @@procidgo 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能否建一张表叫记录变化表,来记录表TAB记录的变化B.或那个表级联修改和删除了.---------------在那个表绑一个触发器,在修改和删除时候判断TAB有没有相应的数据,有的话就写记录变化表。C.还是前台语句直接修改删除了.-----------前台语句修改删除的同时写记录变化表!.最后可以对记录变化表做一些有用的统计! 引用楼主:(这个问题我的解决是在其它表的触发器做更新操作时,对一列加入表名或表ID,不知你有没有更好办法?)---------------------------------------------------------------------------------不好意思 我想能不能这样:可能要求在TAB表中加上一列,在其它表的触发器做更新操作时,记下的新增或者修改的属性值;对于删除则可以建立一个TAB_DELLOG信息表记录所删除的记录,以及操作表标记。对于级联级删除,则一样考虑 。前台SQL则更好处理了。 解决办法:在数据库中增加一个表: 操作表:id 操作者 操作类型--前台操作时,向操作表中写入--触发器触发的操作,也向操作表中写入相关内容--关联操作时,也向操作表写相关的内容一个公共表TAB:公共表的触发器通过判断操作表来确定是谁触发的. 上面的少写了一点.一个公共表TAB:公共表的触发器通过判断操作表来确定是谁触发的.处理完成后,清空操作表的内容.防止冲突 我想也是用日志表式的表,专门记录tab的改变。 to: letsflytogether "级联操作可以通过触发器来替代" --这个不用你说,大家也都知道.但级联操作比触发器效率要高得多."如果有工夫写程序记录所有操作,还不如把级联操作全部用触发器来实现"--这不是有工夫和没工夫的问题,这是数据库维护经常碰到的事.--有时不能随便修改人家的数据库结构和流程.这也是一种无耐.最后,这个跟"钻牛角尖"没什么关系吧,你若对此问题没兴趣,可以不回答.大家来此的目的都是学习和交流,我想你没必要在此冷嘲热讽吧. to:j9988(j9988) 其实您肯定误解了我的意思,也可能是我词不达意。我主要还是提出一种你可能以为很幼稚的方案,至于对于一个问题的态度,有的人喜欢打破沙锅问到底,有的人喜欢找点窍门,这只是个人的性格和思维不同而已,绝没有褒此贬彼,更不是冷嘲热讽。也可以这么说,大凡杰出成就,都是一些人钻牛角尖钻出来的。今天才知道昨天是您生日,生日快乐! to: letsflytogether 谢谢你祝福! 不好意思,我发完那贴就后悔了.我确实误解了.当时心情不好,很恼火,确实对不起!我一般不在这儿表露自已和情绪.但昨天....哎,不说了,对不起! 仔细看了J9988的问题:很难!!我想可以试试这样处理:通过一个TASK_LOG表来记录前台的操作和TRIGGR的操作,比如:TABLE_TEST 中有一列TASKLOG_ID,TASKLOG_TYP(1--表示有前台的APP更新;2--表示有TRIGGER来更新;0--表示其他操作)。TASKLOG_TYP 默认值为0.TASK_LOG表(TASKLOG_ID,TASK_LOG,...) 还有一个方法就是直接分析TRANSACTION LOG。 如何去掉sql2008显示的服务器名 sql视图查询结果优化求助! 备份问题 100分 请教sql2000数据库频繁访问占资源的问题 如何用一个SQL语句,把某月所有的天数列出来。 在sqlserver下,怎样建立指向oracle数据库的视图? SQL SERVER中什么函数表示当前日期? 一个简单的sql求解 asp+mssql求和排列 初学者的学习-17-->另类的sp_attach_db 组合查询问题,高手帮忙啊!!!! 请高手指点一个VB+SQL的问题(在线等候!!!)
B.或那个表级联修改和删除了.
---------------
在那个表绑一个触发器,在修改和删除时候判断TAB有没有相应的数据,
有的话就写记录变化表。
C.还是前台语句直接修改删除了.
-----------
前台语句修改删除的同时写记录变化表!.最后可以对记录变化表做一些有用的统计!
引用楼主:
(这个问题我的解决是在其它表的触发器做更新操作时,对一列加入表名或表ID,不知你有没有更好办法?)
---------------------------------------------------------------------------------
不好意思 我想能不能这样:可能要求在TAB表中加上一列,在其它表的触发器做更新操作时,记下的新增或者修改的属性值;
对于删除则可以建立一个TAB_DELLOG信息表记录所删除的记录,以及操作表标记。
对于级联级删除,则一样考虑 。
前台SQL则更好处理了。
id 操作者 操作类型--前台操作时,向操作表中写入
--触发器触发的操作,也向操作表中写入相关内容
--关联操作时,也向操作表写相关的内容一个公共表TAB:
公共表的触发器通过判断操作表来确定是谁触发的.
公共表的触发器通过判断操作表来确定是谁触发的.
处理完成后,清空操作表的内容.防止冲突
"级联操作可以通过触发器来替代"
--这个不用你说,大家也都知道.但级联操作比触发器效率要高得多."如果有工夫写程序记录所有操作,还不如把级联操作全部用触发器来实现"
--这不是有工夫和没工夫的问题,这是数据库维护经常碰到的事.
--有时不能随便修改人家的数据库结构和流程.这也是一种无耐.最后,这个跟"钻牛角尖"没什么关系吧,你若对此问题没兴趣,可以不回答.
大家来此的目的都是学习和交流,我想你没必要在此冷嘲热讽吧.
其实您肯定误解了我的意思,也可能是我词不达意。
我主要还是提出一种你可能以为很幼稚的方案,
至于对于一个问题的态度,有的人喜欢打破沙锅问到底,有的人喜欢找点窍门,
这只是个人的性格和思维不同而已,绝没有褒此贬彼,更不是冷嘲热讽。
也可以这么说,大凡杰出成就,都是一些人钻牛角尖钻出来的。今天才知道昨天是您生日,生日快乐!
谢谢你祝福!
不好意思,我发完那贴就后悔了.我确实误解了.当时心情不好,很恼火,确实对不起!
我一般不在这儿表露自已和情绪.但昨天....哎,不说了,对不起!
我想可以试试这样处理:
通过一个TASK_LOG表来记录前台的操作和TRIGGR的操作,比如:TABLE_TEST 中有一列TASKLOG_ID,TASKLOG_TYP(1--表示有前台的APP更新;2--表示有TRIGGER来更新;0--表示其他操作)。TASKLOG_TYP 默认值为0.TASK_LOG表(TASKLOG_ID,TASK_LOG,...)