这篇文章主要为大家详细介绍了SQL Server 操作主从关系表的sql语句示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
典型的方法就是对于主表的各数据字段进行更新或新增,对于从表一般都会先删除相关的所有记录,然后再进行插入。也就是说每次保存时,从表的数据都要重新执行一遍删除再插入的过程。这是一个不错的方法,在使用数据库事务后,不会存在删除后又没有插入导致数据不一致的情况。代码如下:
Create proc SaveInfo
(
---参数列表不再逐一书写
@subjectList varchar(400))
as
begin tran
--新增或修改主表 省略
DECLARE @subjectID int,
@subjectIDsLen int,--科目长度
@subjectIDLen int,--单个科目长度
@nStart INT , -- 记录查找的起始位置
@nLast INT -- 记录‘,'的位置
select @subjectIDsLen=len(@SubjectIDs),@nStart=1,@nLast=0
DELETE Tb_StudentSubject WHERE StudentId=@sId --删除相关的全部记录
IF(@subjectIDsLen>0)
BEGIN
while(@nStart<@subjectIDsLen)
BEGIN
set @nLast=charindex(',',@SubjectIDs,@nStart)--从第@nStart个位置开始记录逗号的位置
set @subjectIDLen=@nLast-@nStart --记录每个subjectID的长度
set @subjectID=substring(@SubjectIDs,@nStart,@subjectIDLen)--获取一个subjectID
Insert Into Tb_StudentSubject(StudentId,SubjectID)values(@sId,@subjectID)
set @nStart=@nLast+1--设置下次查找的起始位置
END
END
if @@Error=0
commit transaction
else
rollback transaction
End
本文来自:http://www.q1010.com/179/8082-0.html
注:关于SQL Server 操作主从关系表的sql语句示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:SQL SERVER
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。