1.SP1
表:Tbl_A
输入:@R_1,@R_2
输出:R_1,R_2
备注:此SP不可被单独执行。必须先执行插入主表的SP 2.SP2
表:Tbl_B
输入:@R_1,@R_2
输出:R_1,R_2
备注:为简便代码,可以考虑对Tbl_B作更新时先删除其原有子表(Tbl_B_1),再依次插入新的子表(Tbl_B_2)。若采用此方法,在Update Tbl_B完成后,可添加语句Delete From Tbl_B_1 Where R_1=@R_1 
随后调用在程序中调用SP1即可
哪位高手能将这两个SP写出来~?

解决方案 »

  1.   

    补充:用sql server 2000 来写~
      

  2.   

    是吗?
    那我再定义一下,SP1的插入主表示Insert_SP1。
    哪里还很模糊吗?
      

  3.   

    Tbl_B是Tbl_A 的主表
    Insert_SP1相当于InsertTbl_B,
    SP1相当于InsertTbl_A,
    SP2相当于Update_B.
    (我也弄得有点乱了…… ^^)
      

  4.   

    麻烦xiaoku大哥帮忙写下这两个SP~
    小女子实在憋不出来……
      

  5.   

    补充补充:
         Tbl_B是Tbl_A 的主表
         SP相当于InsertTbl_B,是插入主表的SP
         SP1相当于InsertTbl_A,
         SP2相当于Update_B.
        (我也弄得有点乱了…… ^^)
      

  6.   

    写一个差不多的:create proc SP_Test(@R_1 varchar(10),@R_2 varchar(10))
    as 
    begin 
    insert into Tbl_B select @R_1,@R_2   --这里只假设B表只有两个字段insert into Tbl_A select @R_1,@R_2   --a表我就不大清除你的意思了.update a set ...                     --这里更新什么?
    from Tbl_B a 
    where ...end
      

  7.   

    非常谢谢啦~
    这样就可以了吗?
    可是我在SP中已经对Tbl_B进行插入了
    这样不会再插入一便吗?
      

  8.   

    你可以不用拆成2个或多个SP的.如果你要拆,当然就不需要在SP中进行Tbl_B的插入了
      

  9.   

    需要拆成两个SP的
    但那样如何能保证我要执行SP1是必须先执行SP,而不能单独执行呢?
      

  10.   

    那你就在 SP1里面 包含 SP 的执行过程咯.如:create proc SP1 
    as
    exec sp
    ...