有三个基础表,用t1,t2,t1_t2表示吧
t1,t2存放的是项目和子项目,t1_t2是项目和子项目的关联表
一个项目可以包含多个子项目 例如:
t1:
id name 1 项目1
2 项目2t2:
id name
1 子项1
2 子项2
3 子项3
4 子项4t1_t2 :
t1id t2id
1 1
1 2
2 3
2 4现在有个用户来选择项目,选择一个项目后,同时把这个项目包含的子项目与该用户关联起来
为此我建了2个表 暂且叫u1,u2 。u1存放的是用户选择的项目,u2存放的是该项目的子项例如用户选择了一个项目后,数据库中可能就存在如下数据:
u1:
id, uid, xiangmuid
1 1 1
u2:id u1id zixiangid
1 1 1
2 1 2
现在的问题就是如何实现我选择的时候只要选择项目就自动的把该项目包含的子项目也保存起来
也就是用一个存储过程实现上面保存u1 u2的操作
也就是为用户选择项目,把这条记录保存到u1中,同时存储过程会自动的把该项目包含的子项目和这次预约保存到u2中
其中u1 u2中的id都是自动增长的
t1,t2存放的是项目和子项目,t1_t2是项目和子项目的关联表
一个项目可以包含多个子项目 例如:
t1:
id name 1 项目1
2 项目2t2:
id name
1 子项1
2 子项2
3 子项3
4 子项4t1_t2 :
t1id t2id
1 1
1 2
2 3
2 4现在有个用户来选择项目,选择一个项目后,同时把这个项目包含的子项目与该用户关联起来
为此我建了2个表 暂且叫u1,u2 。u1存放的是用户选择的项目,u2存放的是该项目的子项例如用户选择了一个项目后,数据库中可能就存在如下数据:
u1:
id, uid, xiangmuid
1 1 1
u2:id u1id zixiangid
1 1 1
2 1 2
现在的问题就是如何实现我选择的时候只要选择项目就自动的把该项目包含的子项目也保存起来
也就是用一个存储过程实现上面保存u1 u2的操作
也就是为用户选择项目,把这条记录保存到u1中,同时存储过程会自动的把该项目包含的子项目和这次预约保存到u2中
其中u1 u2中的id都是自动增长的
CREATE PROCEDURE userselect
-- Add the parameters for the stored procedure here
(@zhxmid int,@u1id int output)AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; -- Insert statements for procedure here
insert into u1(uid,zhxmid) values (1,@zhxmid)
select @u1id=@@identity
--这里返回了插入到u1中的id ,下面应根据这个id执行插入u2的操作,因为这里要插入多条记录 sql我不会写
END
GO
declare cur_dr cursor for
select t1id,t2id from t1_t2 where t1id=@id
open cur_dr
fetch next from cur_dr into @tmpid
while (@@fetch_status=0 )
begin
fetch next from cur_dr into @tmpid
END
close cur_dr
deallocate cur_dr