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 …
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 …
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:
J'espere que cela a pu t'eclairerDé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
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
...
Imaginat que j'ai ce code pour une requette
si je veux laisser a l utilisateur de choisir la ville comment je dois faire
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'
la tu obliges l'utilisateur a prendre parisCREATE PROCEDURE test_1 @SW INTEGER
AS
SELECT NUMERO,NOM, PRENOM, VILLE
FROM CLIENTS
WHERE VILLES = 'PARIS'
exemple
[Ville] ton champ dans ta table CLIENTSCREATE PROCEDURE test_1
@ville as VARCHAR
AS
BEGIN
SET NOCOUNT ON:
SELECT * FROM CLIENTS WHERE [Villes] = @Ville
Apres tu va dans ton analyseur de requete tu tape
j'espere ne pas mettre tromper mais j'ai fais comme caEXEC test_1 ta ville
ja'i taper mon vrai code
il donne ce message
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
Msg 102, Level 15, State 1, Procedure test_1, Line 8
Incorrect syntax near '@project_category'
je vois pas l erreur
ca doit donner quoi comme réponse normalement?
dans ton @projet_category tu mets quoi?
dans project_category il faut mettre le type du projet ( soit type A ou B ou C...)
ta oublier de mettre a la fin(j'ai pi etre oublier de le mettre
END
GO
moi de mon coté ca fonctionne
EXEC test_1 'cccc'CREATE PROCEDURE test_1
@ville AS VARCHAR(10)
AS
BEGIN
SET NOCOUNT ON:
SELECT * FROM aaa WHERE [projet] = @ville
END
GO
3 cccc
ca fonctionne de ton coté
bon courageCREATE PROCEDURE test_1
@project AS VARCHAR
AS
BEGIN
SET NOCOUNT ON :
SELECT * FROM Table_project WHERE [project_category] = @project
END
GO
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
alors dans sql 2005 tu execute directement tes procedure je crois
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?
probablement qu'il n'y a pas de données dans ta table ^^
ajoute unpar exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part select @@ROWCOUNT
a non c pas bon
car si tu selectionne un nom comme Paris ou autre tu dois obtenir les info concernant cette ville
quand j execute la procedure stockée j'ai ce code
et j'ai mes colone sans valeur
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
sachant que j'ai des valeurs dans mes tables
Suffit !
Code : Sélectionner tout - Visualiser dans une fenêtre à part EXEC dbo.test_22 N'Generic_Platform'
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/ * * * * *
Partager