Bonjour,
Soit le script suivant :
La fonction Fn_FonctionQuiNExsitePas() porte bien son nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE PROCEDURE PsTest AS BEGIN BEGIN TRY PRINT 'Avant SELECT' SELECT dbo.Fn_FonctionQuiNExsitePas() PRINT 'Après SELECT' END TRY BEGIN CATCH PRINT 'Entrée CATCH' PRINT 'Erreur: ' + ERROR_MESSAGE() PRINT 'Sortie CATCH' END CATCH END GO EXEC dbo.PsTest
A l'exécution de la procédure stockée PsTest, j'obtiens la sortie suivante :
L'erreur étant de niveau 16, le contrôle aurait du être transmis au bloc CATCH, donc j'aurais du voir les "Entrée CATCH" et "Sortie CATCH".Avant SELECT
Msg*4121, Niveau*16, État*1, Procédure*PsTest, Ligne*6
Impossible de trouver la colonne "dbo" la fonction définie par l'utilisateur ou l'agrégat "dbo.Test". Le nom pourrait également être ambigu.
Pourquoi cela se passe-t-il autrement ?
Partager