CREATE PROCEDURE [dbo].[sp_insertNewReportModelNew] @nome as varchar(70), @descrizione as varchar(250), @flgModello as bit, @IdReportModello as int, @tpReport as smallint, @utente as varchar(13), @idCliente as int = null, @Privacy as tinyint AS BEGIN SET NOCOUNT ON; DECLARE @found as int DECLARE @idReport as int --esiste gia? --step 1 SELECT @idReport=IdReport FROM [dbo].[Report] WHERE Nome = @nome and Utente = @utente and IdReportModello = @IdReportModello IF(@idReport > 0) BEGIN UPDATE Report SET Descrizione = @Descrizione , DtCreazione = getDate(), Privacy = @Privacy WHERE idReport = @idReport --step 2 DELETE FROM [dbo].[ReportSezionePers] WHERE IdReport = @idReport and Utente = @utente --step 3 select @found = count(*) from [dbo].[ReportPerCliente] where IdCliente = @idCliente and IdReport = @idReport if(@found > 0) UPDATE [dbo].[ReportPerCliente] SET DtAssociazione = getdate() WHERE IdCliente = @idCliente and IdReport = @idReport else INSERT INTO [dbo].[ReportPerCliente] ([DtAssociazione] ,[IdReport] ,[IdCliente]) VALUES (getdate() ,@idReport ,@idCliente) END ELSE BEGIN INSERT INTO [dbo].[Report] ([Nome] ,[Descrizione] ,[DtCreazione] ,[FlgModello] ,[IdReportModello] ,[TpReport] ,[Utente] ,[Privacy]) VALUES (@nome ,@descrizione ,getDate() ,@flgModello ,@IdReportModello ,@tpReport ,@utente ,@Privacy) SELECT @idReport = @@identity --step 2 --DELETE FROM [dbo].[ReportSezionePers] -- WHERE IdReport = @idReport and Utente = @utente --step 3 --select @found = count(*) from [dbo].[ReportPerCliente] where IdCliente = @idCliente and IdReport = @idReport --if(@found > 0) --UPDATE [dbo].[ReportPerCliente] --SET DtAssociazione = getdate() --WHERE IdCliente = @idCliente and IdReport = @idReport --else INSERT INTO [dbo].[ReportPerCliente] ([DtAssociazione] ,[IdReport] ,[IdCliente]) VALUES (getdate() ,@idReport ,@idCliente) END return @idReport END