I prefer not to have a duplicate key error, and test specifically for a duplicate. For example:INSERT INTO Users( Username, Password, FirstName, Surname, DateBirth, Email, Id_Country)select @Username, @Password, @FirstName, @Surname, @DateBirth, @Email, @Id_Countrywhere @Username not in ( select Username from Users )if @@rowcount <> 1 begin ... do error processing ... end
Or like this:if exists (select * from Users where @Username = Username ) begin ... do dup user error processing ... endelse begin INSERT INTO Users( Username, Password, FirstName, Surname, DateBirth, Email, Id_Country) select @Username, @Password, @FirstName, @Surname, @DateBirth, @Email, @Id_Country end
CODO ERGO SUM