MICROSOFT SQL SERVER: una Stored Procedure tipica

Vediamo una tipica struttura di una stored procedure da poter usare sempre!

 

 

Il seguente è un tipico template di una stored procedure che io uso nei miei sviluppi:

 

USE [MyDB]
GO

SET NOCOUNT ON;
BEGIN TRANSACTION [MyTrans]

    --declare section
    DECLARE @CODICE_ERRORE INTEGER = NULL
    DECLARE @ERRORMESSAGE  NVARCHAR(max) = NULL
    DECLARE @LEVEL NVARCHAR(10) = NULL
    DECLARE @TIMETAMP DATETIME2 = NULL
    
    DECLARE @COUNT INTEGER = 0

    DECLARE @curId INTEGER = 0
    
    BEGIN TRY
    
        
    
        --do operation
        
        DECLARE userCur CURSOR FOR
        SELECT ID 
        FROM dbo.MyTable
        
        OPEN cur
        FETCH NEXT FROM cur INTO @curId 

        WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @COUNT = @COUNT + 1
            
            UPDATE [dbo]....  this is my query
        
            FETCH NEXT FROM userCur INTO @USERIDCUR
        END
        
        CLOSE cur
        DEALLOCATE cur
        
        COMMIT TRANSACTION [MyTrans];
         
    END TRY
    BEGIN CATCH
        SET @CODICE_ERRORE = @@ERROR
        SET @ERRORMESSAGE  = ERROR_MESSAGE()
        SET @LEVEL = 'ERROR'
        SET @TIMETAMP = GETDATE()

        ROLLBACK TRANSACTION [MyTrans];
         PRINT CONVERT(VARCHAR, @TIMETAMP) + ' - ' + @LEVEL + 'RIGA: ' + CAST(ERROR_LINE() as VARCHAR)  + ' ERROR - [' + CAST(@CODICE_ERRORE as VARCHAR) +'] - ' + @ERRORMESSAGE;
        THROW;
    END CATCH
PRINT 'END'

 

 

Buon lavoro!

Joomla SEF URLs by Artio