两个问题:
1.根据F1、F2、F3、F4、F5这些列的父子关系,更新ParentID和ID的父子关系。谢谢
2.ID是后面插入的列,如何设置他为自增列?我设置了确定提示不能为空,能不能直接更新从1开始到最头。
1.根据F1、F2、F3、F4、F5这些列的父子关系,更新ParentID和ID的父子关系。谢谢
2.ID是后面插入的列,如何设置他为自增列?我设置了确定提示不能为空,能不能直接更新从1开始到最头。
调试欢乐多
set @id=0update tb set @id=@id+1, id=@id
select f1,f2,f3,f4,f5,name from tb where f1<>''insert tb1 (parentid,f1,f2,f3,f4,f5,name)
select (select max(id) from tb where f1<>'') fpid,f1,f2,f3,f4,f5,name from tb where f2<>''
insert tb1 (parentid,f1,f2,f3,f4,f5,name)
select (select max(id) from tb where f2<>'') fpid,f1,f2,f3,f4,f5,name from tb where f3<>''
insert tb1 (parentid,f1,f2,f3,f4,f5,name)
select (select max(id) from tb where f3<>'') fpid,f1,f2,f3,f4,f5,name from tb where f4<>''
比如01-0101-010101这样的。
如果长的左侧几个字符跟短的字符一致,那么长的就是短的子项。这样代码中把数据库转换成tree控件也简单点不是。
F1、F2、F3、F4、F5组合起来就是下面这表的“代码”列
SELECT GBID AS ID,
F5_ AS Name,
CASE
WHEN f2_ = '''' THEN
0
ELSE
(SELECT TOP 1 GBID
FROM (SELECT GBID, f = f1_ + f2_ + f3_ + f4_
FROM GB_T4754_2002
WHERE f1_ = a.f1_
AND f2_ IN (a.f2_, '''')
AND f3_ IN (a.f3_, '''')
AND f4_ IN (a.f4_, '''')
AND GBID <> a.GBID) b
ORDER BY f DESC)
END AS ParentID
FROM dbo.GB_T4754_2002 AS a
用这段sql转成下面下的结构