Bonjour,
Je voulais savoir s'il existe une procédure prédéfinie telle que error_message() en SQL Server 2005 pour récupérer les messages d'erreur en SQL Server 2000?
Merci
Bonjour,
Je voulais savoir s'il existe une procédure prédéfinie telle que error_message() en SQL Server 2005 pour récupérer les messages d'erreur en SQL Server 2000?
Merci
Bonjour,
Malheureusement cette fonction n'a pas d'équivalent sous SQL Server 2000.
Néanmoins vous pouvez écrire une procédure stockée générique qui vous permettra d'enregistrer vos erreurs dans une table "centrale".
Il vous suffit pour cela, dans toutes vos procédures stockées, de tester sir la variable @@ERROR vaut 0 ou non (elle vaut 0 s'il n'y a pas eu d'erreur) et de récupérer le message dans la table système master.dbo.sysmessages.
Dans vos procédures, vous aurez donc, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 INSERT INTO ... IF @@ERROR <> 0 BEGIN EXEC dbo.maProcedureStockeeDeGestionDesErreurs @@ERROR END
Vous aurez par exemple la table centrale suivante :
Et votre procédure stockée maProcedureStockeeDeGestionDesErreurs serait alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE TbErreurs ( IDErreur INT NOT NULL CONSTRAINT PK_TbErreur PRIMARY KEY, dateErreur DATETIME NOT NULL CONSTRAINT DF_TbErreur_dateErreur DEFAULT (GETDATE()), libelleErreur NVARCHAR(2048) )
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE PROCEDURE dbo.maProcedureStockeeDeGestionDesErreurs @_erreur INT AS BEGIN INSERT INTO dbo.TbErreurs (libelleErreur) SELECT description FROM sysmessages WHERE error = @_erreur AND msglangid = 1036 -- 1033 pour l'avoir en anglais END
merci, je vais essayer.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager