Jag gör en stroed procedure som lägger till en användare i mitt system. Den proceduren skall göra ett gäng saker så jag har lagt den i en trans.
begin trans
insert into...
[...]
if @@error > 0
rollback tran
else
commit tran
till saken hör att jag har satt användarnamnet som unikt i en tabell så det går fel om jag försöker lägga till en användare med samma användarnamn vilket är riktigt... men min fråga är... varför är @@error fortfarande 0 trotts att inserten går fel???
ska jag måsta kolla om användarnamnet finns först och ta omhand om just det felet själv??? verkar ju dumt...
Ok... nu börjar det koppla... nu tror jag att jag fattar varför det blir rätt fast det är fel...
först körs
insert into... som går fel...
@@error annat än 0
sen kör jag en fråga som går rätt
då bilr @@error 0 igen
och min if på slutet som kollar om @@error är skild från 0 säger att den är 0
kan det verkligen vara sant?
ska jag måsta kolla efter varje sats om @@error är skild från 0 ???