eccomi, allora ho eseguito la SP da SSMS.
questo il codice eseguito in automatico:
codice:
USE [db_zara_test]
GO

DECLARE    @return_value int,
        @IDLast float,
        @ERROR_NUMBER int,
        @ERROR_SEVERITY int,
        @ERROR_STATE int,
        @ERROR_PROCEDURE nvarchar(126),
        @ERROR_LINE int,
        @ERROR_MESSAGE nvarchar(4000),
        @NUMROWSAFFECTED int

EXEC    @return_value = [dbo].[usp_InsertRichiesta]
        @RicReferente = 1,
        @RicIntervento = 1,
        @RicCondominio = 1,
        @RicDataInizio = NULL,
        @RicDataUltimo = NULL,
        @IDLast = @IDLast OUTPUT,
        @ERROR_NUMBER = @ERROR_NUMBER OUTPUT,
        @ERROR_SEVERITY = @ERROR_SEVERITY OUTPUT,
        @ERROR_STATE = @ERROR_STATE OUTPUT,
        @ERROR_PROCEDURE = @ERROR_PROCEDURE OUTPUT,
        @ERROR_LINE = @ERROR_LINE OUTPUT,
        @ERROR_MESSAGE = @ERROR_MESSAGE OUTPUT,
        @NUMROWSAFFECTED = @NUMROWSAFFECTED OUTPUT

SELECT    @IDLast as N'@IDLast',
        @ERROR_NUMBER as N'@ERROR_NUMBER',
        @ERROR_SEVERITY as N'@ERROR_SEVERITY',
        @ERROR_STATE as N'@ERROR_STATE',
        @ERROR_PROCEDURE as N'@ERROR_PROCEDURE',
        @ERROR_LINE as N'@ERROR_LINE',
        @ERROR_MESSAGE as N'@ERROR_MESSAGE',
        @NUMROWSAFFECTED as N'@NUMROWSAFFECTED'

SELECT    'Return Value' = @return_value

GO
e questo è l'output:
codice:
@IDLast    @ERROR_NUMBER    @ERROR_SEVERITY    @ERROR_STATE    @ERROR_PROCEDURE    @ERROR_LINE    @ERROR_MESSAGE    @NUMROWSAFFECTED
13    NULL    NULL    NULL    NULL    NULL    NULL    NULL
e sotto mi esce questo:
codice:
Return Value
0
quindi in effetti ritorna zero.
il perchè non l'ho capito.