栏目导航:首页 > 网络编程 > Mssql > 内容 在线投稿

SQL语句操作主从关系表

在项目开发中,经常出现这样的需求。在新增或修改一个主表数据时,对应的从表也要进行同步,此时我们是怎么操作的了?典型的方法就是对于主表的各数据字段进行更新或新增,对于从表一般都会先删除相关的所有记录,然后再进行插入。也就是说每次保存时,从表的数据都要重新执行一遍删除再插入的过程。这是一个不错的方法,在使用数据库事务后,不会存在删除后又没有插入导致数据不一致的情况。

最好的it资讯站,最全面的it资讯,尽在墨者资讯网

ok,原理是这样,那么到实际的操作中,大家如何操作的呢?有人通过在程序中,通过多次数据库操作完成如上的要求,这种方法可能存在这数据的不一致性,因为无法保证在两个数据语句操作之间出现意外。那么我们就合并到一个存储过程中去完成吧,复杂的参数和接收后处理,让这个存储过程变的困难。下边我就结合实际应用说说此过程吧。应用场景,在学生管理中,添加一条学生记录,对应的要 添加学生对应的课程。即每次更新和新增学生记录,对应其课程也要跟着变化。

本文转载自www.cnmoker.org 墨者资讯网

那么这个过程,就符合上边的逻辑。

copyright cnmoker.orrg

通用的参数传递,在此不再详说,重点讲解,科目信息传递过后怎么处理。假设从表Tb_StudentSubject 存在StudentId,SubjectId两个字段。那么代码如下: 最好的it资讯站,最全面的it资讯,尽在墨者资讯网

本文转载自墨者资讯网 墨者资讯网

  1. Create proc  SaveInfo  
  2. (  
  3.  ---参数列表不再逐一书写  
  4. @subjectList varchar(400))  
  5. as 
  6. begin tran  
  7. --新增或修改主表 省略  
  8. DECLARE @subjectID int,  
  9.         @subjectIDsLen int,--科目长度  
  10.         @subjectIDLen int,--单个科目长度  
  11.         @nStart    INT    ,    -- 记录查找的起始位置  
  12.         @nLast    INT    -- 记录‘,’的位置
来源:墨者资讯网-我们致力于做最全面的it资讯信息资料库
TAG: 位置 指定 关系 长度 记录 操作 语句 过程 数据 一个
评论 | 推荐 | 挑错 | 责编:admin | 时间: 2011-06-07
上一篇:SQL Server 2005恢复Master库 下一篇:SQL Server管理 这些你懂吗?