1、用父節點的left更新,每次更新都會更新與其同級的子節點及 其父節點 及與其父節點同級的節點
if has parent
pleft = parent left
update left = left+2 where left >pleft
update right = right+2 where right>pleft
insert left=pleft +1 ,right = pleft +2
else
insert into left = max(right) +1,
right = left +2
事例:
父節點1 : 1 2
插入子節點:父節點1為 1 4 ,子節點1為 2 3 ;
插入子節點:父節點1為 1 6 ,子節點1為 4 5,子節點2為 2 3;
插入父節點:父節點1為 1 6 ,子節點1為 4 5,子節點2為 2 3;父節點2為7 8;
插入子節點:父節點1為 1 8,子節點1為 4 5,子節點2為 6 7,子節點3為2 3;父節點2為 9 10;
2、用父節點的right更新,每次更新其父節點 及與其父節點同級的節點(
建議使用)
if has parent
pright = parent right
update left = left+2 where left >= pright
update right = right+2 where right>= pright
insert left=pright ,right = pright + 1
else
insert into left = max(right) +1,
right = left +2
事例:父節點1 : 1 2
插入子節點:父節點1為 1 4 ,子節點1為 2 3 ;
插入子節點:父節點1為 1 6 ,子節點1為 2 3,子節點2為 4 5;
插入父節點:父節點1為 1 6 ,子節點1為 2 3,子節點2為 4 5;父節點2為7 8;
插入子節點:父節點1為 1 8 ,子節點1為 2 3,子節點2為 4 5,子節點3為6 7;父節點2為 9 10;
讀取XML繫結TreeNode
1 treeview onclick treeviewcheckbox click runat server 2 treeview.showcheckboxes treenodetypes.all treeview.showlines true treeview.expanddepth 1 tree...
更新資料並返回更新的資料
今天,測試資料併發,發現死鎖問題,最後發現時頻繁對乙個表進行更新和查詢操作。我的業務邏輯很簡單,就是做個seq 但是sqlserver沒有,所以就乙個表來實現,通過程式先取出 再 1 更新,但是在大併發的情況下就會死鎖。所以就想看看有沒有辦法把這兩個sql 寫成乙個的。網上查了半天終於發現了。eg ...
批量更新資料
update bs storage setstoreqty storeqty a.mqty from select nb disbill.companyid,goodsid,nb disbill.outstoreid,outstorepos,mqty,nb disbill.billno from n...