Han-SoloMedlem sedan jan. 2001290 inlägg Jag har missat nått vitalt...
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...
LarsGMedlem sedan dec. 200012 464 inlägg @@error sätts efter varje sats.
Han-SoloMedlem sedan jan. 2001290 inlägg efter varje sats... ska jag slänga in nått 'go' menar du?
har testat men får det inte att funka...
LarsGMedlem sedan dec. 200012 464 inlägg Nej, rys, inga go.
insert ...
-- @@error får ett värde
if @@error <> 0 set @latestError = @@error
-- @@error får ett nytt värde
set ...
--- @@error får ett nytt värde
så om du vill behålla värdet för @@error så måste du lagra det i en annan variabel.
Han-SoloMedlem sedan jan. 2001290 inlägg 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 ???