CREATE FUNCTION [dbo].[GeneraChiaveContratto] ( @TipoProdotto varchar(5)='', @CodInterno varchar(13)='', @CodMAF varchar(13)='', @CodISIN varchar(16)='', @CodSottoprodotto varchar(13)='', @CodiceContratto varchar(11)='',@NumeroPolizza varchar(11)= '', @Conto varchar(12)= '', @Rubricato varchar(4)='',@CustodiaGaranzia varchar(1)='', @Termid varchar(8)='', @Anno decimal(3)=0, @Prog decimal(9)=0 ) RETURNS varchar(123) AS BEGIN -- Questa funzione concatena i dati dormando una stringa unica DECLARE @ResultVar VARCHAR(123) DECLARE @t1 VARCHAR(63) DECLARE @tp VARCHAR(5) DECLARE @t2 VARCHAR(60) declare @AnnoS as varchar(3) declare @ProgS as varchar(9) set @AnnoS = cast(@Anno as varchar(3)) set @ProgS = cast(@Prog as varchar(9)) set @t2= '@'+ rtrim(isnull(@CodInterno, '')) + rtrim(isnull(@CodMAF, '')) + rtrim(isnull(@CodISIN, '')) + rtrim(isnull(@CodSottoprodotto, '')) set @tp = rtrim(@TipoProdotto)+ '@' if len(rtrim(isnull(@Conto, ''))) <12 set @Conto= REPLICATE ( '0' ,12-len(rtrim(isnull(@Conto, ''))) ) +rtrim(isnull(@Conto, '')) if len(rtrim(isnull(@Rubricato, ''))) <3 set @Rubricato= REPLICATE ( '0' ,3-len(rtrim(isnull(@Rubricato, ''))) ) +rtrim(isnull(@Rubricato, '')) if len(rtrim(isnull(@CustodiaGaranzia, ''))) <1 set @CustodiaGaranzia= '0' if len(rtrim(isnull(@NumeroPolizza, ''))) <11 set @NumeroPolizza= REPLICATE ( '0' ,11-len(rtrim(isnull(@NumeroPolizza, ''))) ) +rtrim(isnull(@NumeroPolizza, '')) if len(rtrim(isnull(@Termid, ''))) <8 set @Termid= REPLICATE ( '0' ,8-len(rtrim(isnull(@Termid, ''))) ) +rtrim(isnull(@Termid, '')) if len(rtrim(isnull(@AnnoS, 0))) <3 set @AnnoS= REPLICATE ( '0' ,3-len(rtrim(isnull(@AnnoS, 0))) ) +rtrim(isnull(@AnnoS, 0)) if len(rtrim(isnull(@ProgS, 0))) <9 set @ProgS= REPLICATE ( '0' ,9-len(rtrim(isnull(@ProgS, 0))) ) +rtrim(isnull(@ProgS, 0)) set @t1= rtrim(isnull(@CodiceContratto,'e'))+rtrim(isnull(@Conto,'e'))+ rtrim(isnull(@Rubricato,'e'))+ rtrim(isnull(@CustodiaGaranzia, 'e'))+ rtrim(isnull(@NumeroPolizza,'e'))+rtrim(isnull(@Termid, 'e'))+ rtrim(isnull(@AnnoS, 'e'))+rtrim(isnull(@ProgS, 'e')) set @ResultVar = isnull(@tp,'tp') +isnull(@t1,'1') + isnull(@t2,'2') -- Return the result of the function RETURN @ResultVar END