Friday, November 23, 2018

Cursor and foreach in MS SQL Server


DECLARE @data_invoice_code VARCHAR(50)
       -- LAY CAC GIAO DICH CAN HOAN TIEN TU DONG
       DECLARE data  CURSOR FOR
              SELECT i.InvoiceCode
              FROM Invoice i

       OPEN data
       FETCH NEXT FROM data INTO @data_invoice_code

       WHILE (@@fetch_status = 0)
       BEGIN
              DECLARE @InvoiceCode NVARCHAR(50)

              SET NOCOUNT ON;


              BEGIN TRANSACTION
              BEGIN TRY
                     -- Thực hiện câu lệnh                   
                    
             
                     COMMIT TRANSACTION
              END TRY
              BEGIN CATCH 
                     SELECT  
                            ERROR_NUMBER() AS ErrorNumber 
                           ,ERROR_SEVERITY() AS ErrorSeverity 
                           ,ERROR_STATE() AS ErrorState 
                           ,ERROR_PROCEDURE() AS ErrorProcedure 
                           ,ERROR_LINE() AS ErrorLine 
                           ,ERROR_MESSAGE() AS ErrorMessage; 

                    
                      ROLLBACK TRANSACTION
              END CATCH

              FETCH NEXT FROM data INTO @data_invoice_code
       END

       CLOSE data
       DEALLOCATE data


No comments:
Write comments