locked
Managment Studio raiserror severity > 16 esetén nem jelenít meg result setet RRS feed

  • Question

  • Sziasztok!

     

    Hogyan kell rábírni az ssms-t, hogy normálisan viselkedjen 16-nál nagyobb seretity értékű hibákkal?

     

    Code Snippet

    ALTER PROCEDURE pr2

    @severity int

    ,@with_seterror bit

    AS

    if (@with_seterror = 1) begin

    RAISERROR('***pr2 raiserror.', @severity, 1) WITH SETERROR

    return @@error

    end

    else begin

    RAISERROR('***pr2 raiserror.', @severity, 1)

    return @@error

    end

     

    ssms-ben:

    Code Snippet

    declare @ret int, @err int;

    exec @ret = pr2 @severity = 17, @with_seterror = 0

    select @@error "@err", @ret "@ret", alma = ''

     

     

    Ha ez lefut, akkor nem látom ez eredményhalmazt, ha viszont ugyenezt lefuttatom sqlcmd-vel, akkor ahogy azt elvárom, megjelenik:

     

    >sqlcmd -S xxxxx\sqlexpress -i raiserror1.sql
    Changed database context to 'teszt_db'.
    Msg 50000, Level 17, State 1, Server DEVBOOK\SQLEXPRESS, Procedure pr2, Line 11
    ***pr2 raiserror.
    @err      @ret       alma
    ----------- ----------- ----
              0       50000

    (1 rows affected)

     

    TRY-CATCH-blokkban nem jön elő ez a hiba:

    Code Snippet

    begin try

    exec @ret = pr2 @severity = 17, @with_seterror = 0

    select @@error "@err", @ret "@ret", hol = 'try'

    end try

    begin catch

    select @@error "@err", @ret "@ret", hol = 'catch'

    end catch

     

    @err        @ret        hol

    ----------- ----------- -----

    50000       NULL        catch

    (1 row(s) affected)

     

     

    Saturday, September 1, 2007 4:03 PM