/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Transaction
Fra : Maxi


Dato : 13-03-04 22:13

Hvordan laver man en transaction i mssql ? Hvis begge SQL statement udføres
korrekt skal der comittes. Hvordan gøres dette??

CREATE PROCEDURE AddUser
(

@UserID int

)
AS

INSERT INTO Temp1(UserID)
VALUES (@UserID )

UPDATE Temp2 SET UserID = @UserID
WHERE (UserID = @UserID )

GO




 
 
Søren Lund Jensen (14-03-2004)
Kommentar
Fra : Søren Lund Jensen


Dato : 14-03-04 15:01

Maxi wrote:

> Hvordan laver man en transaction i mssql ? Hvis begge SQL statement
> udføres korrekt skal der comittes. Hvordan gøres dette??
>
> CREATE PROCEDURE AddUser
> (
>
> @UserID int
>
> )
> AS

BEGIN TRANS
> INSERT INTO Temp1(UserID)
> VALUES (@UserID )
>
> UPDATE Temp2 SET UserID = @UserID
> WHERE (UserID = @UserID )

IF @@ERROR <> 0
   ROLLBACK TRANS
ELSE
   COMMIT
> GO


Kristian Damm Jensen (14-03-2004)
Kommentar
Fra : Kristian Damm Jensen


Dato : 14-03-04 20:07

Søren Lund Jensen wrote:
> Maxi wrote:
>
>> Hvordan laver man en transaction i mssql ? Hvis begge SQL statement
>> udføres korrekt skal der comittes. Hvordan gøres dette??
>>
>> CREATE PROCEDURE AddUser
>> (
>>
>> @UserID int
>>
>> )
>> AS
>
> BEGIN TRANS
>> INSERT INTO Temp1(UserID)
>> VALUES (@UserID )
>>
>> UPDATE Temp2 SET UserID = @UserID
>> WHERE (UserID = @UserID )
>
> IF @@ERROR <> 0
> ROLLBACK TRANS
> ELSE
> COMMIT
>> GO

Du synes ikke det er umagen værd at kontrollere @@error for hvert trin?
Hvis inserten fejler, men updated går godt, så vil du gerne committe?

--
Kristian Damm Jensen damm (at) ofir (dot) dk
"I conclude that there are two ways of constructing a software design:
One way is to make it so simple that there are obviously no
deficiencies and the other way is to make it so complicated that there
are no obvious deficiencies." -- C.A.R. Hoare


Søren Lund Jensen (15-03-2004)
Kommentar
Fra : Søren Lund Jensen


Dato : 15-03-04 20:07

Kristian Damm Jensen wrote:

> Søren Lund Jensen wrote:
> > Maxi wrote:
> >
> >> Hvordan laver man en transaction i mssql ? Hvis begge SQL statement
> >> udføres korrekt skal der comittes. Hvordan gøres dette??
> > >
> >> CREATE PROCEDURE AddUser
> >> (
> > >
> >> @UserID int
> > >
> >> )
> >> AS
> >
> > BEGIN TRANS
> >> INSERT INTO Temp1(UserID)
> >> VALUES (@UserID )
> > >
> >> UPDATE Temp2 SET UserID = @UserID
> >> WHERE (UserID = @UserID )
> >
> > IF @@ERROR <> 0
> > ROLLBACK TRANS
> > ELSE
> > COMMIT
> >> GO
>
> Du synes ikke det er umagen værd at kontrollere @@error for hvert
> trin? Hvis inserten fejler, men updated går godt, så vil du gerne
> committe?

Du har ret. Jeg var vist lidt for hurtig der.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste