IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Problème de recompilation de fonction


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Concepteur/Développeur
    Inscrit en
    Mai 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 98
    Par défaut Problème de recompilation de fonction
    Bonjour à tous,

    J'ai cherché sur le net, chez les autres ça marche mais pas pour moi, Je m'explique :

    Alors le problème est que j'ai des fonctions (fonctions table et scalaires) qui logiquement font des requetes vers les tables avec un genre 'select * from TestTable'
    Dans le cas où je modifie la structure d'une table (suppression d'une colonne), la fonction ne se recompile pas d'où l'erreur : Msg*4502, Niveau*16, État*1, Ligne*1 : le nombre de noms de colonnes spécifiés est supérieur au nombre de colonnes définies.

    J'ai trouvé qu'avec 'sp_recompile TestTable' ou 'sp_recompile TestFonction', ça devrait la recompiler à la prochaine execution : Il me met bien le message 'L'objet 'TestFonction' a été marqué correctement pour la recompilation' après cette exécution mais si je refait un appel à la fonction -> même erreur!

    Si vous pouviez m'éclairer sur le sujet, merci d'avance.

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Utilisez plutôt l'instruction ALTER FUNCTION pour mettre à jour votre fonction

    ++

  3. #3
    Membre actif
    Profil pro
    Concepteur/Développeur
    Inscrit en
    Mai 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 98
    Par défaut
    Merci, j'aurais préféré une solution plus simple parce que là je vais devoir le faire dynamiquement comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT routine_name, code=replace(routine_definition, 'CREATE FUNCTION', 'ALTER FUNCTION')
    FROM INFORMATION_SCHEMA.ROUTINES
    	WHERE routine_type='FUNCTION'
    puis une exécution, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/08/2005, 11h20
  2. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  3. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  4. Réponses: 4
    Dernier message: 01/07/2004, 11h53
  5. Réponses: 4
    Dernier message: 19/04/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo