CREATE PROCEDURE [dbo].[sp_insertClienteIntoDBNew] @codiceFiscale as varchar(16), @utente as varchar(13), @nome as varchar(50) = null, @cognome as varchar(50) = null, @codiceContratto as varchar(11) = null AS BEGIN SET NOCOUNT ON; DECLARE @found as int DECLARE @seekCognome as nvarchar(100) SET @seekCognome = '' --esiste gia? SELECT @found = count(*) FROM [dbo].[Cliente] WHERE [CodFiscale] = @codiceFiscale AND [Utente] = @utente IF(@found <= 0) --non esiste BEGIN INSERT INTO [dbo].[Cliente] ([DtCreazione] ,[CodEsterno] ,[CodFiscale] ,[Utente] ,[Cognome] ,[Nome] ,[Nominativo] ,[CodiceContratto]) VALUES (getdate() ,@codiceFiscale ,@codiceFiscale ,@utente ,@cognome ,@nome ,case when len(@cognome)> 49 then @cognome else @nome + ' ' + @cognome END ,@CodiceContratto) END ELSE BEGIN -- SELECT @seekCognome = Cognome -- FROM [dbo].[Cliente] -- WHERE [CodFiscale] = @codiceFiscale -- AND [Utente] = @utente -- IF(ISNULL(@seekCognome,'') = '') -- BEGIN UPDATE [dbo].[Cliente] SET [Nominativo] = case when len(@cognome)> 49 then @cognome else @nome + ' ' + @cognome END ,[Cognome] = @cognome ,[Nome] = @nome ,[CodiceContratto] = @CodiceContratto WHERE [CodFiscale] = @codiceFiscale AND [Utente] = @utente -- END END END