在进货单制单中,因为单号自动生成,单号在进货单主表中唯一的,而明细表中的数据一定是依据主表中的单号的,如果点保存单据,这个时候要作一个insert或update操作的选择,如果明细表中存在这个单号的记录或主表中存在这个单号的记录,则要作UPDATE操作,反之就作insert操作.那么如果我要处理保存主表(明细暂时无关)要乍么处理?存储过程乍么现实?

解决方案 »

  1.   

    1. 可以用程序处理,加入判断逻辑
    2.可以用trigger对需要操作的字段做处理
      

  2.   

    问题不清晰。
    要是修改主表只要不改单号,应该对字表无影响,直接做update语句不就得了。
    要是单号也要改的话,字表的对应的也要改动。
      

  3.   


    一般情况下如果更新的话 肯定是主从表一起更新 不关从表是否有更新记录一起UPDATE
    我这边是这样处理的 不知道别人是怎么实现的
      

  4.   

    主要是不想用程序方法,因为比较麻烦,
    如果用存储过程或SQL事务要乍么处理?
    还有就是更新的话我不想更新从表应该也可以吧?
    有没有相关实例代码?
      

  5.   

    if not exists(select * from [主表] where  [主键]=@主键值)
      begin 
       insert into 主表(单号,字段)value(@主键值,值)
       if not exists(select * from [从表] where  [单号]=@主键值)
          插入从表
       else
          更新从表
      end 
    else 
       begin
        update 主表 set 字段=值  where  [主键]=@主键值
        if not exists(select * from [从表] where  [单号]=@主键值)
          插入从表
        else
          更新从表
       end  个人觉得就你的操作,最好是用代码里面的事务来处理会更加简单一些