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 et LIKE


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut Procédure stockée et LIKE
    Bonjour,

    J'ai créé une procédure :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    USE [axTest]
    GO
    /****** Objet*:  StoredProcedure [dbo].[GetArticleById]    Date de génération du script*: 03/10/2010 14:47:42 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        NA
    -- Create date: 10/03/2010
    -- Description:    
    -- =============================================
    CREATE PROCEDURE [dbo].[GetArticleById] (
        -- Add the parameters for the stored procedure here
        @Article nvarchar)
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
     
        -- Insert statements for procedure here
        SELECT ITEMID, ITEMNAME, STANDARDINVENTSIZEID, DATAAREAID
        FROM dbo.INVENTTABLE WHERE ITEMID LIKE '%' + @Article + '%'
    END
    Lorsque je fais un select tout simple de ce que devrait faire ma procédure,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ITEMID,ITEMNAME FROM dbo.INVENTTABLE WHERE ITEMID LIKE '%000013%';
    J'obtiens mes bons résultats, or lorsque j'appelle ma procédure en passant en paramètre le '000013', il m'affiche tous les éléments de la table..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GO
    EXECUTE dbo.GetArticleById @Article = '000013';
    GO
    Je ne comprends pas pourquoi...

  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
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Quel est le type de ITEMID ?

    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 éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Bonjour, ITEMID est string , enfin NVARCHAR

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Par défaut
    et si tu declares ITEMID en varchar as tu le même résultat?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Par défaut
    j'annule ma réponse précédente.
    essais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    convert('%' + @Article + '%' as nvarchar)

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Bonjour
    JE place ce code ou?
    quand je le met dans la requete de la procédure, il me met une erreur sur les '%'

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

Discussions similaires

  1. Risque d'injection SQL avec un like dans une procédure stockée
    Par Oberown dans le forum Développement
    Réponses: 2
    Dernier message: 28/11/2012, 21h56
  2. Problème LIKE Procédure stocké SQL Server 2000
    Par Pilhole dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 18/02/2008, 09h24
  3. Problème de LIKE dans Procédures stockées
    Par Pilhole dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/02/2008, 14h38
  4. SQL2K/ procédures stockées avec Like
    Par zalalus dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/07/2006, 15h53
  5. Problème avec un LIKE dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2004, 14h38

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