/*************************************** * function staccaNewIdx * * fornisce un nuovo idx valido per company - flusso - anno indicati ed aggiorna tab contatori * * Steamware, S.E.L. * mod: 2010.03.19 * ****************************************/ CREATE FUNCTION [dbo].[staccaNewIdx] ( @CodCompany VARCHAR(2), @Flusso VARCHAR(2), @Anno VARCHAR(2) ) RETURNS INT AS BEGIN DECLARE @answ AS INT -- cerco nella tab contatori UDC l'ultimo valido SET @answ = ISNULL( ( SELECT ISNULL(LastIdx,0) FROM ContatoriUdc WHERE CodCS = @CodCompany AND Flusso = @Flusso AND Anno = @Anno ),0) /* -- controllo se record c'è... IF(@answ > 0) BEGIN -- se c'è incremento di 1 in tab UPDATE ContatoriUdc SET LastIdx = LastIdx + 1 WHERE CodCompany = @CodCompany AND Flusso = @Flusso AND Anno = @Anno END ELSE BEGIN -- lo creo! INSERT INTO ContatoriUdc(CodCompany, Flusso, Anno, LastIdx) VALUES (@CodCompany, @Flusso, @Anno, 1) END @answ = @answ + 1 */ -- uso il dato passando valore + 1 (ho incrementato nel frattempo...) RETURN @answ END