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 :

Create procedure + fulltext


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut Create procedure + fulltext
    bonsoir,
    je fais appel à vous pour mettre en pratique quelque chose : le fulltext !

    disons que j'ai une table personne avec comme champs :
    - id_personne
    - nom
    - prenom
    - ville

    je cré une procédure stockée avec comme paramètre des mots clés pour chacun de ces champs. certains paramètres peuvent ne pas être renseignés !
    la doc sur le fulltext est u n peu ambigue, pourriez-vous m'aider a faire cette procédure svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE PROCEDURE Keyword_personne
    @nom varchar, @prenom varchar, @ville varchar
    AS
    	BEGIN
     
    	END
    GO
    pour le reste, je ne vois pas du tout comment faire xD
    j'aimerais utiliser ce type de recherche : LIKE "%blablabla", en gros un startwith ! ça permettrait de consommer moins de ressources car ça ira chercher en début de chaine uniquement ...
    un petit coup de main serait le bienvenue svp

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    bon, j'ai fais un essai sur une autre de mes tables :

    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
    27
     
    CREATE PROCEDURE Keyword_carburant
    @nom_carburant VARCHAR(20)
    AS
    	BEGIN
    		DECLARE @requete VARCHAR(1000)
    		DECLARE @i INT
     
    		set @i = 0
    		set @requete = 'SELECT id_carburant, nom_carburant FROM carburant'
     
    		/* nom_carburant */
    		IF @nom_carburant IS NULL
    			SET @i += 1
    			IF @i = 1
    				SET @requete = ' WHERE '
    			ELSE
    				SET @requete = ' AND '
    			END
    			SET @requete = ' nom_carburant LIKE ' + @nom_carburant +'%'''
    		END
     
    		EXEC (@requete)
     
    		RETURN
    	END
    GO
    seulement il y a une erreur sur les instructions EXEC et END (le dernier).
    la structure et les instructions de ma procédure stockée sont-elles mauvaises ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    cette version est acceptée par sqlserver :
    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
    27
    28
    29
    30
    CREATE PROCEDURE Keyword_carburant
    @nom_carburant VARCHAR(20)
    AS
    	DECLARE @requete VARCHAR(1000)
    	DECLARE @i INT
     
    	SET @i = 0
    	SET @requete = 'SELECT id_carburant, nom_carburant FROM carburant'
     
    	/* nom_carburant */
    	IF @nom_carburant IS NOT NULL
    	BEGIN
    		SET @i += 1
     
    		IF @i = 1
    			BEGIN
    				SET @requete = @requete + ' WHERE '
    			END
    		ELSE
    			BEGIN
    				SET @requete = @requete + ' AND '
    			END
     
    		SET @requete = @requete + ' nom_carburant LIKE ''' + @nom_carburant + '%'''
    	END
     
    	SELECT @requete
     
    	EXEC @requete
    GO
    mais je ne sais pas comment faire une exécution de procédure stockée dans sqlserver pour faire un test, qui peut me montrer la commande please ?

    EDIT :

    la commande suivante me génère une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE Keyword_carburant 'es'
    erreur : Msg*2812, Niveau*16, État*62, Procédure*Keyword_carburant, Ligne*29
    Procédure stockée*'SELECT id_carburant, nom_carburant FROM carburant WHERE nom_carburant LIKE 'es%' introuvable.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    ça marche :

    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
    27
    28
    CREATE PROCEDURE Keyword_carburant
    @nom_carburant VARCHAR(20)
    AS
    	DECLARE @requete VARCHAR(1000)
    	DECLARE @i INT
     
    	SET @i = 0
    	SET @requete = 'SELECT id_carburant, nom_carburant FROM carburant'
     
    	/* nom_carburant */
    	IF @nom_carburant IS NOT NULL
    	BEGIN
    		SET @i += 1
     
    		IF @i = 1
    			BEGIN
    				SET @requete = @requete + ' WHERE '
    			END
    		ELSE
    			BEGIN
    				SET @requete = @requete + ' AND '
    			END
     
    		SET @requete = @requete + 'nom_carburant LIKE ''' + @nom_carburant + '%'''
    	END
     
    	EXEC(@requete)
    GO
    merci quand même

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    j'ai un autre problème lié à un uniqueidentifier dans une autre 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    CREATE PROCEDURE Keyword_modele
    @id_marque_voiture uniqueidentifier, @nom_modele VARCHAR(30)
    AS
    	DECLARE @requete VARCHAR(1000)
    	DECLARE @i INT
     
    	SET @i = 0
    	SET @requete = 'SELECT id_modele, id_marque_voiture, nom_modele FROM modele'
     
    	/* id_marque_voiture */
    	IF @id_marque_voiture IS NOT NULL
    	BEGIN
    		SET @i += 1
     
    		IF @i = 1
    			BEGIN
    				SET @requete = @requete + ' WHERE '
    			END
    		ELSE
    			BEGIN
    				SET @requete = @requete + ' AND '
    			END
     
    		SET @requete = @requete + 'id_marque_voiture = ' + @id_marque_voiture
    	END
     
    	/* nom_modele */
    	IF @nom_modele IS NOT NULL
    	BEGIN
    		SET @i += 1
     
    		IF @i = 1
    			BEGIN
    				SET @requete = @requete + ' WHERE '
    			END
    		ELSE
    			BEGIN
    				SET @requete = @requete + ' AND '
    			END
     
    		SET @requete = @requete + 'nom_modele LIKE ''' + @nom_modele + '%'''
    	END
     
    	SELECT @requete
    	EXEC @requete
    GO
    message d'erreur : Les types de données varchar et uniqueidentifier sont incompatibles dans l'opérateur add.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    c'est bon j'ai utilisé un convert()

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

Discussions similaires

  1. Create procedure if not exists ?
    Par mappy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2008, 17h57
  2. Réponses: 1
    Dernier message: 17/05/2008, 20h47
  3. Problème de create procedure
    Par Tardiff Jean-François dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 02/02/2006, 14h10
  4. [DB2 V6.1] CREATE PROCEDURE
    Par CyBeRoN dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/09/2005, 14h02
  5. create procedure
    Par frantzgac dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/06/2005, 09h39

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