Tại đây mình viết thủ tục với đầu vào
CREATE PROCEDURE [dbo].[EMS_CLASSSTUDYPLAN_INSERT]
(
@CLASS_IDS NVARCHAR(100),
@SEMESTER_ID INT,
@FP_ID INT,
@SEMESTERPLAN_ID INT,
@STUDY_SESSION NVARCHAR(500)
)
AS
BEGIN
DECLARE @CHK INT
SET @CHK = 0
SELECT @SEMESTER_ID = SEMESTER_ID FROM SEMESTERPLAN WHERE SEMESTERPLAN_ID = @SEMESTERPLAN_ID
BEGIN TRY
BEGIN TRANSACTION CLASSSTUDYPLAN_INSERT;
DECLARE @CLASS_ID INT /*BIẾN CHẠY ID CỦA CLASS*/
DECLARE DB_CURSOR CURSOR FOR SELECT VALUE FROM EMS_SPLIT(@CLASS_IDS,',') --TẠO CON TRỎ CÁCH NHAU BỞI DẤU ,
OPEN DB_CURSOR --MỞ CON TRỎ
FETCH NEXT FROM DB_CURSOR INTO @CLASS_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF(@CLASS_ID <> 0)
BEGIN
INSERT INTO CLASSSTUDYPLAN([CLASS_ID],[SEMESTER_ID],[FP_ID],[SEMESTERPLAN_ID],[STUDY_SESSION])
VALUES(@CLASS_ID,@SEMESTER_ID,@FP_ID,@SEMESTERPLAN_ID,@STUDY_SESSION)
END
FETCH NEXT FROM DB_CURSOR INTO @CLASS_ID
END
CLOSE DB_CURSOR --ĐÓNG CON TRỎ
DEALLOCATE DB_CURSOR --GIẢI PHÓNG CON TRỎ
SET @CHK = 1
SELECT @CHK
COMMIT TRANSACTION CLASSSTUDYPLAN_INSERT;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION CLASSSTUDYPLAN_INSERT;
SET @CHK = 0
SELECT @CHK
END CATCH
END
RETURN
Thực hiện Copy và paste vào csdl là hiện rõ lên các key sẽ dễ nhìn và dễ hiểu hơn. :D
Không có nhận xét nào:
Đăng nhận xét