Получение моего пользовательского сообщения об ошибке из SQL 2000 sp - PullRequest
0 голосов
/ 11 ноября 2008

У меня есть sp со следующим псевдокодом ...

    BEGIN TRANSACTION
            set @errorLocation='Deleting Permissions'
            DELETE [tblUsrPermissions]
            WHERE
                lngUserID = @lngUserID
            if @@error>0
            begin
                goto roll_back
            end

            COMMIT TRANSACTION
            set @errorLocation='' --clear error messages
            select @errorLocation --return success
    return
roll_back:
    IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION -- there were errors, rollback
    select @errorLocation 

Я использую .NET sqlclient sql datareader, и я получаю исключение в коде при вызове функции ExecuteScalar - во время операции удаления в sp возникает ошибка.

Я хочу получить свое собственное сообщение об ошибке вместо исключения. Что я могу сделать?

Ответы [ 2 ]

1 голос
/ 11 ноября 2008

используйте raiserror, чтобы показать вашу ошибку клиенту. обратите внимание, что в зависимости от серьезности ошибки, ваше сообщение raiserror может никогда не попасть. поэтому для более полного ответа укажите исходную ошибку, которую вы получите, и где вы ее получите.

0 голосов
/ 11 ноября 2008

Если вы используете SqlServer 2005 или более поздней версии, поместите свой код в блок TRY , а затем вызовите RAISERROR в блоке перехвата

...