j'ai besoin d'aide avec cette procédure:Aide rollback procédure SQL Server
ce que son supposé faire est d'essayer d'insérer un nouvel utilisateur s'il n'y a pas d'autre avec le même nom.
S'il existe déjà un utilisateur, il doit annuler la validation. Mais ça ne marche pas, ça s'engage quand même.
Des suggestions?
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[SP_USUARIOS_INSERT]
@usu_ds varchar(50),
@usu_dt_create datetime,
@usu_dt_lst_log datetime,
@usu_ds_senha varchar(255),
@usu_ds_email varchar(100)
as
begin
declare @varCheckUser varchar(100) = null;
set @varCheckUser = (select COUNT(usu.usu_Ds) from Usuarios usu where usu.usu_ds = @usu_ds);
begin transaction
insert into Usuarios(usu_ds,usu_dt_create,usu_dt_lst_log,usu_ds_senha,usu_ds_email) values(@usu_ds,@usu_dt_create,@usu_dt_lst_log,@usu_ds_senha,@usu_ds_email)
if (@varCheckUser <> null)
begin
RAISERROR('User already exists',16,1)
rollback transaction
return
end
else
begin
commit transaction
end
end
Avez-vous évalué la réponse que j'ai donnée? Vous pouvez faire la tâche en une seule étape. – ErikE