在进货单制单中,因为单号自动生成,单号在进货单主表中唯一的,而明细表中的数据一定是依据主表中的单号的,如果点保存单据,这个时候要作一个insert或update操作的选择,如果明细表中存在这个单号的记录或主表中存在这个单号的记录,则要作UPDATE操作,反之就作insert操作.那么如果我要处理保存主表(明细暂时无关)要乍么处理?存储过程乍么现实?
解决方案 »
- c#中timespan除法运算
- 求一个C#新年倒计时的程序
- svn 1.6.5 中文语言包 现在有了没
- 高手帮忙看看啊!
- C#中创建iis 虚拟目录遇到难题(未处理COMException 当文件已存在时,无法创建该文件。异常来自HRESULT:0x800700B7)请大大来帮忙诊断下
- 作了截图用gif 还是 jpeg 存储好?要是用timer 定时截图,不能达到速度很快,有啥改进的方法?
- C# 读取txt文件 从后往前读 检索到某个字符停下,并将含有该字符的行获取出来!
- 我用WebClient通过网站把文章保存下来
- 我的vs自动提示功能没有了!
- 一不小心。。。。。。
- 关于update修改所有查出的需具问题,现在只能修改一条
- ManagementException
2.可以用trigger对需要操作的字段做处理
要是修改主表只要不改单号,应该对字表无影响,直接做update语句不就得了。
要是单号也要改的话,字表的对应的也要改动。
一般情况下如果更新的话 肯定是主从表一起更新 不关从表是否有更新记录一起UPDATE
我这边是这样处理的 不知道别人是怎么实现的
如果用存储过程或SQL事务要乍么处理?
还有就是更新的话我不想更新从表应该也可以吧?
有没有相关实例代码?
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 个人觉得就你的操作,最好是用代码里面的事务来处理会更加简单一些