if exists(select [name] from sys.objects where [name]='updateChild' and [type]='TR')
drop trigger updateChild
go
create trigger updateChild
on TB_ProductType
for update
as
if update(Pids) or update(Pid) or update([Level])
begin
update TB_ProductType set Pids=replace(pt.Pids,d.Pids,i.Pids),
[Level]=case when (i.[Level]<>d.[Level]) then (pt.[Level]+i.[Level]-d.[Level]) else (pt.[Level]) end
from TB_ProductType pt,deleted d,inserted i
where charindex('|'+cast(d.ID as nvarchar(20)) +'|',pt.Pids)>0
end
go
model.pid = int.Parse(ddlLM.SelectedValue);
string xzPids = "|0|";
if (model.pid != 0)
{
Model.LM xzModel = bll.GetModelBystrWhere("ID=" + model.pid);
if (xzModel != null)
{
xzPids = xzModel.pids + model.pid + "|";
model.Level = xzModel.Level + 1;
}
}
else
model.Level = 1;
model.pids = xzPids;
if (id > 0)
{
Model.LM model_0 = bll.GetModelBystrWhere("ID=" + id);
if (model_0 != null)
{
if (model_0.pid != model.pid) //上级已修改
{
Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("update TB_LM set Pids=replace(Pids,"
+ "'" + model_0.pids + "','" + model.pids + "') where charindex('|"
+ model_0.ID + "|',Pids)>0");
}
}
}