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 :

Procédure stockée PB


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut Procédure stockée PB
    Bonjour,

    j'ai réalisé une procédure stockée sous SQL server 2000
    avec 1 INSERT...
    Quand je l'execute voilà le msg d'erreur:

    Serveur : Msg 1934, Niveau 16, État 1, Procédure SP_EPRO_ESSAI, Ligne 4
    INSERT a échoué car les options SET suivantes comportent des paramètres incorrects*: 'ANSI_NULLS., QUOTED_IDENTIFIER'.

    toutefois quand j'execute séparément les requetes dans l'analyseur tout se passe correctement??

    j'ai rajouté les instruction au début de ma proc

    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON

    Je n'y comprend plus bien?

    Si qqun voit pourquoi ben je suis preneur ;o)


    (PS:Vérification de la syntaxe de la proc correcte)

  2. #2
    Membre Expert
    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
    Par défaut
    Bonjour,

    Tu essaies d'insérer dans une table qui est utilisée par une vue indexée, ou qui comporte une colonne calculée indexée, n'est-ce pas ?

    Il faut que les options en questions soit settées avant l'exécution de ta procédure, pas à l'intérieur. Autrement dit, lance tes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    dans un batch séparé, avant d'appeler ta procédure.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Mon soucis est que dans mon analyseur j'ai essayé

    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON

    EXECUTE SP_EPRO_......

    Et là c'est le drame :o( j'ai toujours le même message...
    effectivement je travaille sur une table qui est indexée !
    pourquoi cela jouerait dessus?

  4. #4
    Membre Expert
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    GO
    
    EXECUTE SP_EPRO_......
    Je n'ai pas dit table indexée, mais vue indexée. Ou une colonne calculée indexée.
    Ces options SET doivent être consistantes dans ces cas, pour que SQL Server garantisse que les données retournées soient elles aussi consistantes.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    J'ai essayé comme tu me l'as indiqué mais sans succès :o(
    Dans l'analyseur, c'est comme si SQL server ne prenait pas en compte les chg d'option??

    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    GO

    EXECUTE SP_EPRO_......

    toujours le meme message.??
    effectivement dans la table, j'ai des colonnes calculées indexées...

    Pourtant qd j'execute l'instruction via du code php l'insert s'effectue sans pb?

  6. #6
    Membre Expert
    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
    Par défaut
    Peut-être parce que les options de la connexion en PHP sont déjà corrects ?
    Ce qui peut paraître surprenant car PHP utilise une vieille bibliothèque.

    Tu dois avoir ces options settées pour insérer dans ta table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    SET ARITHABORT ON
    SET CONCAT_NULL_YIELDS_NULL ON
    SET QUOTED_IDENTIFIER ON
    SET NUMERIC_ROUNDABORT OFF
    Peux-tu voir si la procédure a été créée avec les deux options settées correctement ? Ces options sont liées à la sproc à sa création.

    Tu peux le voir de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT	ROUTINE_NAME,
    		OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME), 'ExecIsQuotedIdentOn') as IsQuotedIdentOn,
    		OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME), 'ExecIsAnsiNullsOn') as ExecIsAnsiNullsOn
    FROM INFORMATION_SCHEMA.ROUTINES
    WHERE ROUTINE_NAME = 'taprocedure'
    Si tu as un 0 dans une des deux colonnes, recrées ta procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    GO
     
    ALTER SP_EPRO_......
    Si ça ne marche pas, fais un CREATE au lieu de l'ALTER.

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  3. [Pervasive SQL ] procédure stockée
    Par magellan dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 25/10/2002, 13h17
  4. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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