--Khai báo biến @id, @title để lưu nội dung đọc DECLARE @p_ATTACH_ID VARCHAR(15), @p_REF_ID NVARCHAR(15), @p_REF_MASTER VARCHAR(15) DECLARE cursorProduct CURSOR FOR -- khai báo con trỏ cursorProduct SELECT ATTACH_ID, REF_ID, REF_MASTER FROM CM_ATTACH_FILE WHERE REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT) AND REF_ID NOT IN (SELECT REQ_ID FROM TR_REQUEST_DOC_FILE)-- dữ liệu trỏ tới OPEN cursorProduct -- Mở con trỏ FETCH NEXT FROM cursorProduct -- Đọc dòng đầu tiên INTO @p_ATTACH_ID, @p_REF_ID, @p_REF_MASTER WHILE @@FETCH_STATUS = 0 --vòng lặp WHILE khi đọc Cursor thành công BEGIN DECLARE @l_REQFile_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TR_REQUEST_DOC_FILE', @l_REQFile_ID out INSERT INTO dbo.TR_REQUEST_DOC_FILE ( [TR_REQUEST_DOC_FILE_ID], [ATTACH_ID] ,[IS_VIEW] ,[REQ_ID] ,[NOTES] ) VALUES ( @l_REQFile_ID, @p_ATTACH_ID ,0 ,@p_REF_ID ,NULL ) FETCH NEXT FROM cursorProduct -- Đọc dòng tiếp INTO @p_ATTACH_ID, @p_REF_ID, @p_REF_MASTER END CLOSE cursorProduct -- Đóng Cursor DEALLOCATE cursorProduct -- Giải phóng tài nguyên UPDATE CM_ATTACH_FILE SET REF_MASTER = REF_ID, REF_ID = A.TR_REQUEST_DOC_FILE_ID FROM TR_REQUEST_DOC_FILE A INNER JOIN CM_ATTACH_FILE B ON A.ATTACH_ID = B.ATTACH_ID WHERE A.REQ_ID IN (SELECT REQ_ID FROM TR_REQUEST_DOC)