想实现一个级联菜单的功能,好像需要将一个表中的一个字段设置为这张表主键的外键,但是我写的却不知道为什么不能添加数据,请教一下哪位帮忙解决下,谢谢!
数据库的代码
create table Area (
AreaID int identity (1, 1) not null ,
AreaName nvarchar (30) not null ,
PraentID int foreign key references Area(AreaID) not null ,
)谢谢!

解决方案 »

  1.   

    可以有主外键关系,也就是AreaID和PraentID的主外键关系,但是,我试过,第一条数据必须手工插入,也就是ParentID输入的是1,这样下面的数据就可以插入了。
      

  2.   

    自己也学习了,你的脚本有误,在插入第一条记录后,再创建主外键关系,也就是约束。这种主外键表,如果能加上两列,查询的时候会方便一些。
    Area_IDPath varchar(200) not null,
    Area_NamePath nvarchar(500) not null,
    ID的路径,这样查找子类的子类,父类的父类会非常方便。
      

  3.   

    通过你们的解决方案我修改了下,现在可以了create table Area
    (
    AreaID int primary key identity(1,1) not null,
    AreaName varchar(30) not null,
    ParentID int not null
    )insert into Area(AreaName,ParentID)values('湖北省',0)
    insert into Area(AreaName,ParentID)values('广东省',0)alter table Area add constraint ParentID foreign key(AreaID) references Areainsert into Area(AreaName,ParentID)values('湖南省',0)但是有点弄不懂为什么要再加两列呢?具体有什么用呢?