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 :

les vues procédures stockées et les requêtes…


Sujet :

MS SQL Server

  1. #1
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut les vues procédures stockées et les requêtes…
    bonjour je suis un peut perdu, j'ai lu plusieurs livre mais j arrive pas a comprendre concrètement le rôle des vues, procédures stockées et les requêtes…

    a quoi me sers les vues, procédures stockées ?

    est ce que vous pouvez m expliqué une peu SVP …

  2. #2
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    le role de la vue est une requete
    et une procédure stockée va permettre d'interroger tes vues ou requetes suivant certains parametres que tu choisis

    Voici une petite definition:

    Définition d'une procédure stockée

    Les procédures (ou fonctions) stockées sont des blocs Transact-SQL nommés, pouvant être paramétrés, que l’on définit et stocke une seule fois dans la base.

    La notion de procédure (ou fonction) stockée a été conçue dans l’esprit de grouper un ensemble de commandes SQL avec des instructions procédurales, pour constituer une unité de traitement pouvant être appelée à partir de n’importe quel programme ou directement sous l’analyseur de requêtes.

    Les outils fournis à l’administrateur d'une base de données Microsoft SQL Server utilisent souvent des procédures stockées. Toutes les procédures préfixées par sp_ sont des procédures stockées du système. Elles sont créées dans la base de données Master lors de l’installation de Microsoft SQL Server et s’appuient sur les tables systèmes pour effectuer des tâches de gestion et d’administration.

    L’aide de Transact-SQL fournit la liste de toutes les procédures stockées système.
    Les procédures stockées présentent les avantages suivants :

     Une exécution plus rapide, car l'instruction est précompilée et optimisée.

     La réutilisation des plans compilés (contrairement aux vues).

     La possibilité de gérer les dépendances entre le code SQL et les objets du moteur.

     Une sécurité des types, car tous les paramètres d'entrée et de sortie et leurs types de données sont strictement définis.

     Une meilleure sécurité, car les risques de manipulation(s) et d'injection(s) d'instructions SQL sont pratiquement nuls.

     La possibilité de renvoyer plusieurs jeux de résultats en une seule visite à la base de données.

     Une puissante couche de logique applicative (une procédure pouvant appeler des procédures supplémentaires, gérer des transactions, etc.).

    Les procédures stockées sous Microsoft SQL Server peuvent prendre en paramètre et/ou retourner des entiers, des chaînes de caractère, des dates, des curseurs, des tables, des tables virtuelles et tout autre type défini dans SQL Server par défaut ou par les utilisateurs
    J'espere que cela a pu t'eclairer

    Les requets vont interroger ta base
    si tu veux savoir qui a commandé une boisson ou qui habite a paris
    en créant une requete tu sauras

    tu peux afficher des données de tables liées
    trier des données par ordre alphabetique
    ...

  3. #3
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    Imaginat que j'ai ce code pour une requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    CREATE PROCEDURE test_1 @SW INTEGER
    AS
     
    SELECT     NUMERO,NOM, PRENOM, VILLE
     
    FROM         CLIENTS
     
    WHERE     VILLES = 'PARIS'
    si je veux laisser a l utilisateur de choisir la ville comment je dois faire

  4. #4
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    CREATE PROCEDURE test_1 @SW INTEGER
    AS

    SELECT NUMERO,NOM, PRENOM, VILLE

    FROM CLIENTS

    WHERE VILLES = 'PARIS'
    la tu obliges l'utilisateur a prendre paris

    exemple
    CREATE PROCEDURE test_1
    @ville as VARCHAR
    AS
    BEGIN
    SET NOCOUNT ON:
    SELECT * FROM CLIENTS WHERE [Villes] = @Ville
    [Ville] ton champ dans ta table CLIENTS

    Apres tu va dans ton analyseur de requete tu tape
    EXEC test_1 ta ville
    j'espere ne pas mettre tromper mais j'ai fais comme ca

  5. #5
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    ja'i taper mon vrai code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    CREATE PROCEDURE test_1
    @project_category as VARCHAR
    AS
    BEGIN
    SET NOCOUNT ON
    SELECT * FROM Table_project WHERE [project_category] = @project_category
    il donne ce message

    Msg 102, Level 15, State 1, Procedure test_1, Line 8
    Incorrect syntax near '@project_category'


    je vois pas l erreur

  6. #6
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    ca doit donner quoi comme réponse normalement?

    dans ton @projet_category tu mets quoi?

  7. #7
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    dans project_category il faut mettre le type du projet ( soit type A ou B ou C...)

  8. #8
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    ta oublier de mettre a la fin(j'ai pi etre oublier de le mettre
    END
    GO

    moi de mon coté ca fonctionne
    CREATE PROCEDURE test_1
    @ville AS VARCHAR(10)
    AS
    BEGIN
    SET NOCOUNT ON:
    SELECT * FROM aaa WHERE [projet] = @ville

    END
    GO
    EXEC test_1 'cccc'

    3 cccc

  9. #9
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    ca fonctionne de ton coté
    CREATE PROCEDURE test_1
    @project AS VARCHAR
    AS
    BEGIN
    SET NOCOUNT ON :
    SELECT * FROM Table_project WHERE [project_category] = @project
    END
    GO
    bon courage

  10. #10
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    ca marche merci,

    parcontre je travaill avec sql server 2005 j 'arrive pas a trouvé l analyseur des requête.

    je sais que c possible avec sql server 2000

  11. #11
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    alors dans sql 2005 tu execute directement tes procedure je crois

  12. #12
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    bonjour ca marche mon code.. mon souci maintenat c'est quand j excute sur sql server 2005 j'ai une resultat just avec les nom des colone que j selectionné sans les valeur, c'est normal?

  13. #13
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    probablement qu'il n'y a pas de données dans ta table ^^

    ajoute un par exemple

  14. #14
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    a non c pas bon

    car si tu selectionne un nom comme Paris ou autre tu dois obtenir les info concernant cette ville

  15. #15
    Membre du Club Avatar de zakaroh
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 48
    Points
    48
    Par défaut
    quand j execute la procedure stockée j'ai ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DECLARE	@return_value int
     
    EXEC	@return_value = [dbo].[test_22]
    		@project_category = N'Generic_Platform'
     
    SELECT	'Return Value' = @return_value
     
    GO
    et j'ai mes colone sans valeur

    sachant que j'ai des valeurs dans mes tables

  16. #16
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    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 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC dbo.test_22 N'Generic_Platform'
    Suffit !

    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/ * * * * *

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

Discussions similaires

  1. [AC-2010] ADP / Procédure Stockée / Voir les champs des tables
    Par B_SKO dans le forum Projets ADP
    Réponses: 1
    Dernier message: 15/04/2011, 13h39
  2. question sur les vues et l'optimisation de requêtes
    Par zaboug dans le forum Requêtes
    Réponses: 8
    Dernier message: 25/03/2009, 16h28
  3. Réponses: 2
    Dernier message: 10/02/2009, 09h16
  4. MySQL, ses procédures stockées et les transactions
    Par Shogun dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/02/2008, 21h19
  5. Procédure stockée : parcourir les résultats d'un SELECT
    Par choupeo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 13/12/2007, 18h55

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