[SQL] Wanneer is @@Error gevuld?

Pagina: 1
Acties:

Onderwerpen


  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
Probleem :

SQL:
1
2
3
4
5
6
CREATE PROCEDURE cspTest1
AS 
    BEGIN
        SELECT  1 / 0           
        SELECT  @@error
    END 


SQL:
1
2
3
4
5
6
7
CREATE PROCEDURE cspTest2
    AS 
        BEGIN
            SELECT  *
            FROM    Nietbestaandetabel
            SELECT  @@error
        END 


SQL:
1
2
        EXEC dbo.cspTest1
        EXEC dbo.cspTest2


Waarom krijg ik als output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
-----------
Msg 8134, Level 16, State 1, Procedure cspTest1, Line 6
Divide by zero error encountered.


-----------
8134

(1 row(s) affected)

Msg 208, Level 16, State 1, Procedure cspTest2, Line 5
Invalid object name 'Nietbestaandetabel'.



Bij de eerste wel een resultset, bij de tweede niet. Ik had eigelijk 208 verwacht. Kan iemand me dit uitleggen?

[ Voor 3% gewijzigd door Wijnbo op 30-09-2010 14:23 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Eerste is een runtime error, tweede compiletime.

Professionele website nodig?


  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
curry684 schreef op donderdag 30 september 2010 @ 14:24:
Eerste is een runtime error, tweede compiletime.
Zoiets dacht ik al. Is het mogelijk om een compile time error af te vangen/ weg te schrijven naar een andere tabel ?

[ Voor 8% gewijzigd door Wijnbo op 30-09-2010 14:26 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Nope, compiletime error is obviously fatal :)

[edit]
Zou trouwens wellicht met wat creatief errorlevels tunen wellicht wel kunnen maar dat weet ik niet zeker...

[ Voor 56% gewijzigd door curry684 op 30-09-2010 14:30 ]

Professionele website nodig?


  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 06-09 20:35

Wijnbo

Electronica werkt op rook.

Topicstarter
curry684 schreef op donderdag 30 september 2010 @ 14:27:
Nope, compiletime error is obviously fatal :)
Waarom kun je dan wel stored procedures maken met eem compleet shipment of fail er in ;( Het idee is namelijk om foutjes te loggen in stored procedures, maar dat wil dus zo niet echt. Ik kan natuurlijk wel testen of ze uberhaupt compilen, maargoed...

[ Voor 24% gewijzigd door Wijnbo op 30-09-2010 14:31 ]