Bonjour (et bonne année 2024)
Je rencontre un souci suite à la migration de mon serveur SQL de 2014 à 2019
J'ai une fonction scalaire fn_IdentiteNomPrenomCodeCEA qui renvoi une chaine
donne ceci sur mon serveur 2014
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT dbo.fn_IdentiteNomPrenomCodeCEA(CodeUtil) as IdentiteCIInverse
NOM PRENOM BADGE
Lancée sur mon serveur 2019, j’ai une erreur de requête
Msg 208, Level 16, State 1, Procedure fn_IdentiteNomPrenomCodeCEA, Line 48
Nom d'objet 'Annuaire.dbo.AnnuaireUnifie' non valide.
La fonction regarde sur quel serveur elle est lancée pour choisir la base concernée
Ma variable @Regime=Test donc seule la 1° requête est sensée s'exécuter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 set @serveur=@@SERVERNAME set @Regime=(SELECT Regime FROM ParamServeurAppliSTIC.dbo.ServeursSQL WHERE NomServeur=@@servername) if(@Regime='Test') set @Retour= (SELECT Nom+' '+Prenom+' '+CodeCEA FROM TestAnnuaire.dbo.AnnuaireUnifie WHERE ConnectId=@Code) else set @Retour= (SELECT Nom+' '+Prenom+' '+CodeCEA FROM Annuaire.dbo.AnnuaireUnifie WHERE ConnectId=@Code)
Mais il semble que la fonction veuille quand même interpréter la requête du else
Ce type de test est très présent dans mes procédures stockées et fonctions diverses. Ce serait un gros souci pour moi si je devais l’abandonner.
Avez-vous une idée ?
Merci
Partager