2008-11-11 1 views
0

J'ai un sp avec le pseudo-code suivant ...Obtenir mon message d'erreur personnalisé à partir de SQL 2000 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 

J'utilise SqlClient .NET sql datareader, et je suis obtenir un exeception dans le code lorsque appeler la fonction ExecuteScalar - une erreur se produit lors de ma suppression dans le sp.

Je souhaite obtenir mon message d'erreur personnalisé au lieu de l'exception. Que puis-je faire?

Répondre

1

Utilisez raiserror pour analyser votre erreur au client. notez que selon la gravité de l'erorr, votre message de raiserror pourrait ne jamais être touché. donc pour une réponse plus complète fournir l'erreur d'origine que vous obtenez et où l'obtenez-vous.

0

Si vous utilisez SqlServer 2005 ou plus de mettre votre code à l'intérieur TRY block puis appelez RAISERROR dans le bloc catch

Questions connexes