復制代碼 代碼如下:
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
新聞熱點
疑難解答