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

MS SQL Server Discussion :

[SQL Server 2003] Problème de double procédures stockées


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut [SQL Server 2003] Problème de double procédures stockées
    Bonjour à tous,

    Le problème est un peu dur à expliquer donc je vais essayer de faire simple mais n'hésitez pas à poser des questions.

    J'ai une applicatioN DotNet qui utilise un Framework pour attaquer SQL Server comme base de données. L'application met en cache les paramètres de procédure stockées après les avoir récupérés 1 première fois.

    J'ai une procédure stocker SelectUser (on va la nommer comme ceci) qui avait avant 3 paramètres mais qui a été modifié pour en avoir 4. bien évidemment l'application a été modifiée en conséquence.

    Lors de l'exécution de l'appli, une erreur "Too many arguments" est levée sur la procédure stockée SelectUser, ni une ni 2 je vérifie les paramètres.

    J'execute la procédure stockée avec 4 paramètres ca marche, je fais la même chose dans l'application en mettant en dur les 4 paramètres ca marche, et quand je vérifie le tableau de paramètre récupéré automatiquement j'ai bien 4 paramètres.

    Je ne savais pas trop d'ou ca pouvait venir et comment corriger, par contre quand on drop la procédure stockée elle met un message d'erreur "ne peut pas droper quand l'objet est fermé" bizarre ...

    J'ai beau recréer la proc stock , rebooter le serveur, vider le cache de l'application, redémarrer IIS, redémarre Sql Server, killer le processus ASPNet, rien ne fait il y a un problème au niveau des paramètres.

    Ce matin j'ai fais un copié collé de la proc stock mais je l'ai créée sous le nom de SelectUser2. LA PROCEDURE STOCKEE EST IDENTIQUE (je dis ca au cas ou il y a des personnes qui viendraient me dire pour la énième fois que c'est surement pas la même ) j'ai juste copié collé la même en faisant un rechercher remplacer SelectUser par SelectUser2.

    J'ai modifié l'appel à la proc stock dans l'application, j'ai livré ... et ca marche !!!!!

    je refais marche en arrière je recré la procédure en SelectUser et je remodifie l'application, BAM toujours le même problème.


    Apparemment SQL Server s'est emmelé les pinceaux sur le serveur, il a peut etre 2 fois la même proc stock dans son registre mais avec le même nom.

    Ma question est simple : Quelqu'un pourrait il m'expliquer, quelqu'un aurait il une explication logique, et voir même mieux, quelqu'un a t il une solution à ce problème ?

    Je vous remercie par avance pour votre aide

    Vincent.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    SQL Server ne commet pas d'erreur de ce genre. Vous devez avoir quelque part dans votre code SQL un appel a cette procédure avec l'ancienne syntaxde à 3 arguments.

    Relisez tous vos codes :
    procédures
    fonctions
    triggers.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Et bah non

    Il n'est qu'à un seul endroit même après vérification et recherche texte dans tout le projet. Et encore une fois avec traçage d'exécution, il faut bien croire que SQL Server peut se planter d'une façon ou d'une autre.

    Ca fait 1 semaine que c'est vérifié et revérifié. Et le pire c'est que si dans la procédure stockée on remplace le Insert par un select de base la ca passe mais si je remet l'insert ca plante. Par contre la même proc stock en changeant le nom ca passe ...

    Quand je dis que c'est bizarre c'est que c'est bizarre

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Autre piste (que tu as peut-être déjà suivie) : Comment préfixes-tu ton appel de procédure ? N'y a t-il pas une procédure appartenant à un autre user que dbo, et portant le même nom ? Si tu préfixes ton appel de sp par dbo (EXEC dbo.maprocedure), que se passe-t-il ?
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2009, 09h33
  2. [SQL Server 2005] print dans une procédure stockée
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/03/2008, 15h50
  3. Réponses: 3
    Dernier message: 02/02/2007, 14h30
  4. [SQL SERVER 2K]Droits d'exécution procédure stockée
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 16/05/2006, 15h01
  5. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18

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