日期:2014-05-19  浏览次数:20344 次

请教个触发器的写法
table:
t_news_sort
字段:
id
ParentId
SortName
path

一个分类表,path是我后加的字段,现在我想当执行insert   或update时,可以记录下这个树的路径,path
的路径应该是象下面这样


其数据为
id           parentid         sortname         path
1                   0                       t1                 1
2                   1                       t1_1             1,2
3                   2                       t1_1_1         1,2,3

.......

请问高手应该如何写?


------解决方案--------------------
没看到什么意思~...数据给点
------解决方案--------------------
为什么要这样记录?
------解决方案--------------------
好象我以前写过一个相关的...
------解决方案--------------------
路过帮顶
------解决方案--------------------
假设你的原有数据的path都是正确的,触发器可以如下:

create trigger tr_tablename
on tablename
for insert,update
as
set nocount on
if update (id) or update(parentid)
begin
update a
set path=b.path+ ', '+cast(a.id as varchar)
from tablename a,tablename b,inserted i
where a.id=i.id
and a.parentid=b.id
end
go

ps:最好不要打开数据的的递归触发器选项

再PS:应该限制已经有下级的记录的parentid修改,如果允许修改,那就会要求触发器可能修改本记录以及其下级的记录的path,以上触发器未实现这个功能

------解决方案--------------------
顶一下
等高手来写吧~~
insert 时简单点
update 难实现
^_^ ^_^ ^_^
------解决方案--------------------
做是可以,不建议这么做,维护相当麻烦