Avatar billede disco_keld Nybegynder
18. februar 2003 - 12:08 Der er 2 kommentarer og
1 løsning

SPROC. spm.?

Hej med jer,

Jeg har en SPROC her som Updatere en Db tabel.

Det gør jeg med en Transaction, for at kunne rollback hele lortet hvis der sker en fejl.

Den ser således ud:

ALTER PROCEDURE sp_UserUpdate
(
    @UserID int,
    @Company varchar(50),
    @Name varchar(50),
    @Email varchar(50),
    @Password varchar(50),
    @UserRights int,
    @AddedDate datetime
)
AS

BEGIN TRANSACTION UpdateUserData

    SET NOCOUNT ON
    UPDATE
        tbl_User_Accounts
    SET
        Company = @Company,
        [Name] = @Name,
        Email = @Email,
        UserRights = @UserRights
    WHERE
        UserID = @UserID

IF @@ERROR > 0
BEGIN
    RAISERROR ('Updateringen af bruger dataene fejlede', 16, 1)
    ROLLBACK TRANSACTION UpdateUserData
    RETURN 99
END

COMMIT TRANSACTION UpdateUserData

men helt præcist hvad sker der her, når den har raised en error? hvor smider den den fejlmeddelelse hen, og hvad betyder 16, 1? Og Return 99?

IF @@ERROR > 0
BEGIN
    RAISERROR ('Updateringen af bruger dataene fejlede', 16, 1)
    ROLLBACK TRANSACTION UpdateUserData
    RETURN 99
END

Mvh

DK
Avatar billede disco_keld Nybegynder
18. februar 2003 - 12:30 #1
Forresten.......... kan man bruge en Try, Catch blok til at vise den RaisError der med?

Try

Catch ?

End try
Avatar billede janus_007 Nybegynder
18. februar 2003 - 22:52 #2
LEN(Læs BooksOnLine) = 15p

*LOL*
Avatar billede disco_keld Nybegynder
24. februar 2003 - 09:33 #3
Har selv fundet ud af det!

Tnx any ways.

Peace! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester