可以用SQLServer来产生SQL语句dump出整个数据库.至于access2000,直接把结构库复制过去即可.
你的关系图看不太懂,可不可以介绍一下.

解决方案 »

  1.   

    给每一个记录添加一个parentid字段纪录上家
      

  2.   

    也就是这样建表:
    姓名1    姓名2
    a
    ab       a
    a1       ab
    a2       a1
    a3       a2
    ab1      ab
    ab2      ab1
    ab3      ab2
    abc1     ab1
    abc2     abc1
    要求查询 查询 abc3 能显示出abc1,ab1,ab,a查询 a 能显示出ab,a1,a2,a3,ab1,ab2,ab3,abc1,abc2
    查询如何写?
      

  3.   

    第一:关于建库:ADOX干的就是这个活。具体去看ADO帮助。如果有MSDN2000更好,因为那里面是ADO2.5,不过是英文的。第二:你那个东西摆明就是传销系统。俺如何如何就不说啦。但象你那样一个上家有无限下家,没有办法有SQL来查询,因为唯一的办法就是自联接,又不能确定自联接的数量,SQL文本拼出到是没有问题,但是会把机器给跑得死翘翘。   可以限定为2叉树类型,即只有两个下家,如果有多个下家,就把自己当作是自己的下家。数据结构中这些东西是重点,也是基础,(如果不了解,这个钱您就别想去赚了,心中还比较安稳。)这样是可以实现的。不过有一个绕不过去的弯,最后你总得做打印:这个2叉树遍历只有用游标慢慢写,又没有可视化报表可以用,有点麻烦。最后我是写到EXCEL中。做到打印才发现传销的威力,原来几何级数的增长是如此厉害。 
      

  4.   

    对第二个问题算是到点子上了。可以不要做打印。我想知道sql的写法。怎样把机器给跑得死翘。
    对第一个问题希望有朋友给例程。
      

  5.   

    第二个问题就用你现在的表的结构,我想创建一个临时表来进行检索
    #tempName,包括三个字段:
    姓名
    状态 //三种:0-刚加入尚未检索;1-正在检索;2-完成检索
    检索方向 //两种:0-向上;1-向下;2-双向//说明1
    insert into #tempName values('姓名',0,2)
    update #tempName set 状态=1 
    insert into #tempName (select 姓名1,0,0 from table where 姓名2='姓名')
    insert into #tempName (select 姓名2,0,1 from table where 姓名1='姓名')
    update #tempName set 状态=2 where 姓名='姓名'//说明2
    do while exist (select * from #TempName where 状态=0 and 检索方向=0)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=0
    insert into #tempName (select 姓名1,0,0 from table where 姓名2 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=0))
    update #TempName set 状态=2 where 状态=1 and 检索方向=0
    }//说明3
    do while exist (select * from #TempName where 状态=0 and 检索方向=1)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=1
    insert into #tempName (select 姓名2,0,0 from table where 姓名1 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=1))
    update #TempName set 状态=2 where 状态=1 and 检索方向=1
    }//说明4
    select 姓名 from #tempName说明1:将提供的姓名输入到表中,同时将其所有上下级也输入,标示为需要查找其上级或下级
    说明2:将所有没有检索上级的姓名的上级输入到表中,同时将这些设置为已经检索过了(这个好像有点夸张,需要查找上级的每次肯定只有一个人了)
    说明3:将所有没有检索下级的姓名的下级输入到表中,同时将这些设置为已经检索过了
    说明4:得到最后的结果,没有排序,用其它方法进行排序我也不知道这种算法到底怎么描述了,跟图形学中的种子填充法好像有点像。
      

  6.   

    第二个问题就用你现在的表的结构,我想创建一个临时表来进行检索
    #tempName,包括三个字段:
    姓名
    状态 //三种:0-刚加入尚未检索;1-正在检索;2-完成检索
    检索方向 //两种:0-向上;1-向下;2-双向//说明1
    insert into #tempName values('姓名',0,2)
    update #tempName set 状态=1 
    insert into #tempName (select 姓名1,0,0 from table where 姓名2='姓名')
    insert into #tempName (select 姓名2,0,1 from table where 姓名1='姓名')
    update #tempName set 状态=2 where 姓名='姓名'//说明2
    do while exist (select * from #TempName where 状态=0 and 检索方向=0)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=0
    insert into #tempName (select 姓名1,0,0 from table where 姓名2 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=0))
    update #TempName set 状态=2 where 状态=1 and 检索方向=0
    }//说明3
    do while exist (select * from #TempName where 状态=0 and 检索方向=1)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=1
    insert into #tempName (select 姓名2,0,0 from table where 姓名1 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=1))
    update #TempName set 状态=2 where 状态=1 and 检索方向=1
    }//说明4
    select 姓名 from #tempName说明1:将提供的姓名输入到表中,同时将其所有上下级也输入,标示为需要查找其上级或下级
    说明2:将所有没有检索上级的姓名的上级输入到表中,同时将这些设置为已经检索过了(这个好像有点夸张,需要查找上级的每次肯定只有一个人了)
    说明3:将所有没有检索下级的姓名的下级输入到表中,同时将这些设置为已经检索过了
    说明4:得到最后的结果,没有排序,用其它方法进行排序我也不知道这种算法到底怎么描述了,跟图形学中的种子填充法好像有点像。
      

  7.   

    第二个问题就用你现在的表的结构,我想创建一个临时表来进行检索
    #tempName,包括三个字段:
    姓名
    状态 //三种:0-刚加入尚未检索;1-正在检索;2-完成检索
    检索方向 //两种:0-向上;1-向下;2-双向//说明1
    insert into #tempName values('姓名',0,2)
    update #tempName set 状态=1 
    insert into #tempName (select 姓名1,0,0 from table where 姓名2='姓名')
    insert into #tempName (select 姓名2,0,1 from table where 姓名1='姓名')
    update #tempName set 状态=2 where 姓名='姓名'//说明2
    do while exist (select * from #TempName where 状态=0 and 检索方向=0)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=0
    insert into #tempName (select 姓名1,0,0 from table where 姓名2 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=0))
    update #TempName set 状态=2 where 状态=1 and 检索方向=0
    }//说明3
    do while exist (select * from #TempName where 状态=0 and 检索方向=1)
    {
    update #TempName set 状态=1 where 状态=0 and 检索方向=1
    insert into #tempName (select 姓名2,0,0 from table where 姓名1 in (select 姓名 from #tempNamewhere 状态=1 and 检索方向=1))
    update #TempName set 状态=2 where 状态=1 and 检索方向=1
    }//说明4
    select 姓名 from #tempName说明1:将提供的姓名输入到表中,同时将其所有上下级也输入,标示为需要查找其上级或下级
    说明2:将所有没有检索上级的姓名的上级输入到表中,同时将这些设置为已经检索过了(这个好像有点夸张,需要查找上级的每次肯定只有一个人了)
    说明3:将所有没有检索下级的姓名的下级输入到表中,同时将这些设置为已经检索过了
    说明4:得到最后的结果,没有排序,用其它方法进行排序我也不知道这种算法到底怎么描述了,跟图形学中的种子填充法好像有点像。
      

  8.   

    不好意思,网络太慢,一下添了这么多,谁有权限删掉几个吧
    sorry
      

  9.   

    create database
    create table
    create view
    create proc
    create trigger
    dao.createdatabase
      

  10.   

    问题1:
    进入SQL EnterpriseManager
    选中你的数据库
    按鼠标右键
    选择[All Tasks]->[Generate SQL Script...]
      

  11.   

    问题2:使用parent字段,可以参考SQL OLAP Service,那个东西就是做这种事情的。
      

  12.   

    问题2  你是想通过olap server进行数据处理?
      

  13.   

    前几天去深圳开会,今天回来了。
    一定要用SQL OLAP Service,没有用过OLAP Service。谈一谈怎样用OLAP Service来解决这个问题。
    我觉的第二问题和和商品管理中的商品编码的分级类似。
      

  14.   

    jinkai_woo能介绍一下你的专长和emall
      

  15.   

    http://www.csdn.net/expert/TopicView.asp?id=61402