復(fù)制代碼 代碼如下:
Create proc SaveInfo
(
---參數(shù)列表不再逐一書寫
@subjectList varchar(400))
as
begin tran
--新增或修改主表 省略
DECLARE @subjectID int,
@subjectIDsLen int,--科目長(zhǎng)度
@subjectIDLen int,--單個(gè)科目長(zhǎng)度
@nStart INT , -- 記錄查找的起始位置
@nLast INT -- 記錄‘,'的位置
select @subjectIDsLen=len(@SubjectIDs),@nStart=1,@nLast=0
DELETE Tb_StudentSubject WHERE StudentId=@sId --刪除相關(guān)的全部記錄
IF(@subjectIDsLen>0)
BEGIN
while(@nStart<@subjectIDsLen)
BEGIN
set @nLast=charindex(',',@SubjectIDs,@nStart)--從第@nStart個(gè)位置開始記錄逗號(hào)的位置
set @subjectIDLen=@nLast-@nStart --記錄每個(gè)subjectID的長(zhǎng)度
set @subjectID=substring(@SubjectIDs,@nStart,@subjectIDLen)--獲取一個(gè)subjectID
Insert Into Tb_StudentSubject(StudentId,SubjectID)values(@sId,@subjectID)
set @nStart=@nLast+1--設(shè)置下次查找的起始位置
END
END
if @@Error=0
commit transaction
else
rollback transaction
End
新聞熱點(diǎn)
疑難解答
圖片精選