Bonjour J'ai une procédure stockée étendue qui envoie un message d'erreur.Erreur de capture SQL Server de la procédure stockée étendue
srv_sendmsg(pSrvProc, SRV_MSG_ERROR, errorNum, SRV_FATAL_SERVER, 1,
NULL, 0, (DBUSMALLINT) __LINE__,
buff,
SRV_NULLTERM);
J'ai mis la gravité à SVR_FATAL_SERVER comme un test pour voir si je peux faire le message à lancer une exception dans le sql.
Dans mon SQL que je fais:
BEGIN TRY
EXEC dbo.xp_somethingCool
SET @Error = @@ERROR
END TRY
BEGIN CATCH
PRINT 'AN Error occoured!'
SELECT ERROR_NUMBER() AS ErrorNumber
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH
Je pense que quand mon xp envoie le message d'erreur l'tsql attraperait l'erreur et sélectionnez le numéro_erreur et error_message. Au lieu de cela, ce qui finit par arriver, c'est que le xp envoie le message et le T-SQL continue son chemin comme si de rien n'était. La variable @@ Error n'est pas définie non plus.
Alors je me demandais s'il y avait un truc pour obtenir SQL pour attraper une erreur d'un XP?
Merci, Raul
Microsoft vous recommande de ne plus utiliser 'srv_sendmsg'. Voir l'avertissement sur http://msdn.microsoft.com/en-us/library/ms164673.aspx – Aaronaught