[SQL Server] Interception des messages d’erreurs

CREATE PROCEDURE dbo.usp_MajTable1(@champ1 bit = null)

AS

 set nocount on

 begin try

if @champ1 is null

 raiserror ('Le paramètre champ1 DOIT être spécifié',11,1)

update Table1 set champ1 = @champ1 where champ1 is not null

 end try

 begin catch

 declare @Texte nvarchar(4000),@Gravite int, @Etat int

 set @Texte = ERROR_MESSAGE()

 set @Gravite = ERROR_SEVERITY()

 set @Etat = ERROR_STATE()

 raiserror (@Texte,@Gravite, @Etat)

 end catch

GO

EXECUTE dbo.usp_MajTable1

GO