Vous êtes sur la page 1sur 15

Cour Implmentation de SQL SERVER S4 2015

Prsentation des vues


1. Gnralits sur les vues
SQL Server 2005 permet la gestion dobjets associs aux tables, les vues. On peut dfinir une
vue comme tant une table dite virtuelle, qui a la mme utilisation quune table, simplement
une vue ne prend pas despace sur le disque, puisquelle ne stocke pas les donnes comme une
table. Elle ne stocke que la requte dextraction des donnes (SELECT).
Les vues sont un grand avantage quand la gestion des donnes, vis--vis de lutilisateur
final. En effet, elles permettent tout dabord de simplifier la structure des tables, qui peuvent
parfois comporter une multitude de colonnes.
Les vues proposent donc des avantages quant leur cration :
- Simplification de la structure des tables.
- Rutilisation des requtes.
- Scurit daccs.
2 .Cration dune vue

2.1 Avec du code T-SQL


La syntaxe de cration dune vue avec du code T-SQL est simple. On utilisera linstruction
CREATE, comme pour toute cration dobjet dans une base de donnes.

Nous utilisons linstruction CREATE VIEW, auquel nous associons le nom que nous
voulons lui donner.
Le mot cl AS indique que nous allons spcifier la requte SELECT qui va nous permettre de
slectionner les colonnes dune ou plusieurs tables, afin den copier les proprits dans la vue
que nous crons.
Il est bon de prciser que des clauses existantes pour une instruction SELECT classique ne
conviendra pas pour une instruction SELECT servant crer nos vues. Ces instructions ne
doivent pas tre autre que linstruction SELECT, et les clauses FROM et WHERE.
Concernant les options 1 et 2 :
Loption 1 correspond aux options suivantes : WITH ENCRYPTION, WITH
SCHEMABINDING, WITH VIEW_METADATA ; et loption 2 correspond loption
suivant : WITH WHECK OPTION. Dcouvrons les actions de chacune des ces options sur
notre vue.
-WITH ENCRYPTION : permet de crypter le code dans les tables systme. Attention :
personne ne peut consulter le code de la vue, mme pas son crateur. Lors de la modification

1
Cour Implmentation de SQL SERVER S4 2015

de la vue avec linstruction ALTER VIEW, il sera ncessaire de prciser de nouveau cette
option pour continuer protger le code de la vue.
-WITH SCHEMABINDING : permet de lier la vue au schma. Avec cette option, il est
impratif de nommer nos objets de la faon suivante : schma.objet.
- WITH VIEW_METADATA : permet de demander SQL Server de renvoyer les
mtadonnes correspondantes la vue, et non celles qui composent la vue.
- WITH WHECK OPTION : permet de ne pas autoriser linsertion ni la modification des
donnes ne correspondant pas aux critres de la requte.
Voici un exemple

Cet exemple permet de crer une vue dont le nom est Ma_Premire_Vue, avec loption WITH
ENCRYPTION, et cette vue contiendra les colonnes Id_Client_archive et
Id_Commande_archive de la table Archive. Vous pourrez alors retrouver votre vue dans le
sous dossier de votre explorateur dobjet, comme prsent dans limage ci-dessous :

2.2.Avec Explorateur d'objets SQL Server Management Studio(SSMS)


il est trs intuitif de crer une vue grce SSMS.
Pour de faire, de manire graphique, il vous suffit deffectuer un click droit sur le sous dossier
Vues dans votre base de donnes, affiche dans lexplorateur dobjet. Aprs avoir effectu
le click droit, slectionnez Nouvelle vue

2
Cour Implmentation de SQL SERVER S4 2015

Aprs avoir cliqu sur Nouvelle vue, les deux fentres suivantes apparaissent au sein
mme de SSMS.
La premire vous aidera slectionner des tables sur lesquelles la vue portera.
La seconde vous permet de slectionner les colonnes utiliser et construire votre requte

Pour ajouter une table, cliquez sur le nom de la table voulue, et slectionnez Ajouter .
Vous pouvez en ajouter plusieurs, via lutilisation de la touche [Control]. On remarquera que
les tables, aussitt slectionnes, sont modlises dans la partie suprieure de la seconde
fentre.

Pour slectionner les colonnes mettre dans votre vue, cochez les cases correspondant vos
colonnes dans les tables modlises dans la partie suprieure de la fentre. Lorsque lon coche

3
Cour Implmentation de SQL SERVER S4 2015

des cases, on peut remarquer que le nom de ses colonnes est ajout dans la partie centrale de
la fentre.

On peut alors modifier le type de tri, lordre, ou encore le filtre de cette vue en changeant les
caractristiques dans la mme partie. Toutes les actions effectues permettront de gnrer le
code de la vue. Voici un exemple :

Lorsque vous avez fini de concevoir votre vue, faites un clic droit sur longlet de la fentre
dans SSMS, et choisissez Enregistrer . Donnez-lui un nom. Vous venez de crer votre vue.
3. Suppression dune vue
3.1 Avec du code T-SQL
La structure de suppression dune vue est la mme que pour tout objet de la base de donnes. Elle
est la suivante :

DROP VIEW nom_vue


3.2 Avec SSMS
Avec SSMS, il vous suffit deffectuer un clic droit sur la vue dans lexplorateur dobjet et de
slectionner Supprimer et de cliquer sur ok dans la nouvelle fentre qui apparait.

4
Cour Implmentation de SQL SERVER S4 2015

Grce au bouton, Afficher les Dpendances , Il est possible de mettre en vidence les
dpendances existantes entre les objets de la base et la vue slectionne. Une nouvelle fentre
saffiche lcran, dans laquelle vous pourrez choisir les diffrents types de dpendances.

Il vous suffit juste de savoir si vous voulez afficher les objets dpendants de la vue ou ceux
dont dpend la vue en question.

5
Cour Implmentation de SQL SERVER S4 2015

Prsentation des procdures stockes


1. Introduction aux procdures stockes
Les procdures stockes sont des ensembles dinstructions du DML, pouvant tre excuts par
simple appel de leur nom ou par linstruction EXECUTE. Les procdures stockes sont de
vritables programmes qui peuvent recevoir des paramtres, tre excuts distance, renvoyer
des valeurs et possdant leurs propres droits daccs (EXECUTE). Celles-ci sont compiles
une premire fois, puis places en cache mmoire, ce qui rend leur excution plus
performante du fait que le code soit prcompil.
Les procdures stockes sont contenues dans la base de donnes, et sont appelable par leurs
noms. Il existe une multitude de procdures stockes pr intgres dans SQL Server lors de
linstallation qui servent principalement la maintenance des bases de donnes utilisateur.
Celle-ci
commence toujours par les trois caractres sp_ comme stored procedure
. Pour rsumer les avantages des procdures stockes, nous allons lister leurs utilisations :
Accroissement des performances.
Scurit dexcution.
Possibilit de manipuler les donnes systme.
Implmente le traitement en cascade et lenchainement dinstructions.
2. Gestion des procdures stockes
2.1 Cration dune procdure stocke
Pour crer une procdure stocke, nous somme oblig de passer par du code T-SQL .
En revanche, il existe un assistant de gnration automatique de la structure dune procdure
stocke. Nous allons tout dabord tudier la structure gnrale dune procdure stocke avec
cette gnration automatique, puis nous donnerons un exemple, prsent dans le script de la
base que nous utilisons, pour bien comprendre les notions exposes sur les procdures
stockes.
Tout dabord, pour gnrer le script automatiquement, tendez les nuds de lexplorateur
dobjet comme ceci :

6
Cour Implmentation de SQL SERVER S4 2015

On peut dj remarquer la prsence dune procdure stocke, Ajout_Client, que vous devez
aussi procder si vous avez tlcharg le script de la base que nous utilisons pour notre cours,
la base de donnes Entreprise.
Maintenant, pour crer une nouvelle procdure stocke en gnrant le code automatiquement,
il vous suffit de faire
un click droit sur le nud Procdure stockes et de choisir loption Nouvelle procdure
stocke .
Une nouvelle fentre de requte souvre dans SSMS, vous proposant le code pour crer une
nouvelle procdure stocke. Le code est le suivant :

Nous allons maintenant dtailler le code.

Nous crons une procdure stocke avec linstruction DDL CREATE PROCEDURE suivie
du nom donner la procdure.

7
Cour Implmentation de SQL SERVER S4 2015

Ce nom vous permettra de lappeler et de la reconnaitre dans la base.


Nous devons ensuite prciser les variables que prend en paramtre la procdure stocke,
durant son appel. Ces variables vont nous servir par la suite dans la dfinition des actions que
la procdure stocke fait. Nous pouvons initialiser ou non les variables.

Les instructions AS BEGIN et END sont les dlimiteurs du code utiliser par la procdure
stocke. Toutes les instructions comprises entre ces deux mots cls seront prises en compte et
excutes par la procdure stocke.

Exemple
Maintenant que nous avons prsent la structure gnrale de cration dune procdure
stocke, prenons un exemple concret pour lillustrer. Nous alors nous appuyer sur la
procdure stocke dj cre dans le script de notre base de donnes Entreprise, la procdure
stocke Ajout_Client. Voici le code de cration dune procdure stocke dajout client :

8
Cour Implmentation de SQL SERVER S4 2015

On remarque parfaitement que lon dfinit les paramtres avec des variables en dbut de code,
aprs linstruction CREATE PROCEDURE. Ensuite, entre les blocs AS BEGIN et END,
nous faisons un simple dans la table INSERT INTO, Client et nous passons les paramtres de
notre procdure stocke en valeur, aprs linstruction VALUES.
Excution de la procdure
Il est alors possible dutiliser cette procdure stocke de la faon suivante :

Linstruction EXEC ou EXECUTE permet dexcuter la procdure stocke. Il est alors


ncessaire dentrer des valeurs pour les paramtres indiqus dans la procdure stocke.
Remarque : Il est obligatoire de mettre les arguments de la procdure stocke dans lordre
dont elles sont dcrites dans la procdure stocke. Si toute fois vous ne voulez pas les mettre
dans lordre, il est possible de prciser le nom de la variable et dy assigner une valeur de la
faon suivante :

Aprs la dclaration de cration de procdure, et la dclaration des paramtres, il est possible


de dfinir des options grce une clause WITH ou une clause FOR. Ces options sont les
suivantes :
WITH RECOMPILE : La procdure sera recompile chaque excution.
WITH ENCRYPTION : Permet de crypter le code dans la table systme.
FOR REPLICATION : Permet de prciser que la procdure sera utilise lors de la
rplication.
2.2. Modifier une procdure stocke
La modification dune procdure stocke ne peut se faire que par linterface graphique en
premier lieu. Pour en modifier une, tendez tous les nuds qui mnent une procdure
stocke en particulier, comme ceci

9
Cour Implmentation de SQL SERVER S4 2015

Pour modifier une procdure stocke en particulier,


il vous suffit alors de procder un click droit sur celle-ci, et de choisir loption Modifier .
Une nouvelle fentre de requte apparait, avec le code que vous aviez entr lors de la
premire cration de votre procdure. Modifiez-le alors comme voulu et r excutez le pour
modifier la procdure.
2.3 Suppression dune procdure stocke
La suppression dune procdure peut se faire en revanche de deux manires, avec du code ou
linterface graphique. Nous allons prsenter les deux.
Avec du code, il est trs simple de supprimer une procdure stocke. Regardons la syntaxe
gnrale :

Dans un premier temps, avec linstruction USE, placez vous dans la base contenant la
procdure stocke supprimer. Si vous ne le faites pas, la procdure stocke sera indiqus
comme un lment non existant dans la base par SQL Server. Utilisez ensuite les mots cl
DROP PROCEDURE suivit du nom de la procdure stocke pour supprimer celle-ci.
Excutez le code. Vous venez de supprimer votre procdure stocke.
Avec linterface graphique, nous allons procder comme pour une modification de la
procdure. Etendez dans un premier temps tous les nuds qui mnent la procdure stocke
supprimer, comme ceci :

10
Cour Implmentation de SQL SERVER S4 2015

Oprez alors un simple click droit sur la procdure stocke choisie, et slectionnez loption
Supprimer . Une nouvelle fentre apparait. Il sagit simplement dune validation de votre
choix, aucune autre option nest disponible. Cliquez sur OK . Votre procdure stocke est
supprime.
3. Gestion des fonctions utilisateurs
3.1. Prsentation
Les fonctions utilisateurs sont de plusieurs types. Trois pour tre prcis. Il y a les fonctions
scalaires, les fonctions tables en ligne et les fonctions multi-instructions.
Une fonction peu accepter des arguments, et ne peu retourner que deux types de donnes :
une valeur scalaire ou une table.
Les fonctions scalaires retournent, grce au mot cl RETURN, une valeur scalaire. Tous
les types de donnes peuvent tre retourns par une fonction scalaire hors mis timestamp,
table, cursor, text, ntext et image.
Les fonctions table ne retourne comme rsultat, quune table, qui est le rsultat dune
instruction SELECT.
3.2. Cration dune procdure stocke
La cration dune fonction se fait par linstruction DDL CREATE FUNCTION, habituelle
lors de la cration dobjets dans la base. De plus, il existe un multitude de fonctions systme,
utilisable par simple appel de celle-ci. Elles sont disponibles dans lexplorateur dobjets ainsi.
Dtaillons maintenant
La cration dune fonction ce fais quasiment de la mme manire pour les trois types.
Nous allons bien sur prsenter les trois avec trois exemples, simplement nous allons le faire
dans la mme partie. Voici les deux syntaxes principales de cration de fonction (scalaire et
table).
Nous pouvons y accder en dployant les nuds de lexplorateur dobjet jusquau noeud
Fonctions (bases de donnes- on sectionne la base programabilit- fonction), (appliquer
un click droit sur fonction et choisir loption Nouveau en suite choisir fonction table
incluse ou fonction scalaire .) ou directement aprs le clique sur fonction choisi le type de la
fonction ( fonctions tables fonctions- scalaire ,) un clic droit sur le type slectionn et
choisir nouvelle fonction .

11
Cour Implmentation de SQL SERVER S4 2015

Fonction table :

Les fonctions table et table multi-instructions sont diffrentes dans le sens o le format de
retour est diffrent. En effet, la fonction table retourne la solution dun requte SELECT, alors

12
Cour Implmentation de SQL SERVER S4 2015

que la fonction table multi-instruction, retournera une variable de type table, contenant
linstruction SELECT opre par la fonction.
Prenons deux exemples pour mieux comprendre la syntaxe :
Fonction table simple :

Dans ce cas la, aprs linstruction de cration de fonction, CREATE FUNCTION, on indique
simplement que la fonction retourne une donne de type table avec la clause RETURNS
TABLE. Par la suite, aprs la clause AS, on prcise quelle instruction doit tre retourne dans
la valeur de retour de type table de la fonction.
Fonction table multi-instruction :

Dans ce cas, en revanche, la valeur de retour est toujours une table, simplement, on donne
une variable ce type et on dfinit les colonnes quelle contient. Les valeurs dfinies par le
SELECT y seront alors contenues. Il faut faire attention, en contrepartie, ce que le nombre
de colonnes dans la variable retourne par la fonction ait le mme nombre de colonnes que le
rsultat retourn par linstruction SELECT.
Fonction scalaire

13
Cour Implmentation de SQL SERVER S4 2015

Ici, on cr une fonction scalaire que lon reconnait grce linstruction RETURNS int. On se
sert bien entendu de linstruction CREATE FUNCTION suivie du nom de la fonction
utiliser et des paramtres prendre en compte entre parenthses. Les clauses AS BEGIN et
END dclarent dans lordre, le dbut et la fin de la fonction. Cette fonction retourne une
valeur qui dsigne le nombre darticle prsents, pour un stock pass en paramtre.
Dans les fonctions, certaines options sont disponibles, comme dans les procdures stockes.
Elles vont vous permettre certaines actions sur cette fonction, et celle-ci sont appelables
directement aprs la dfinition du type de retour de la fonction :
- WITH SCHEMABINDING : Cette option permet de lier la fonction tous les objets de la
base auxquels elle fait rfrence. Dans ce cas, la suppression et la mise jour de nimporte
quel objet de la base, li la fonction est impossible.
- WITH ENCRYPTION : Permet de crypter le code dans la table systme.

3.3. Modification dune fonction


La modification dune fonction nest possible que par une instruction T-SQL DDL,
linstruction ALTER FUNCTION. En effet, dans ce cas l, les commandes CREATE
FUNCTION et ALTER FUNTION auront quasiment la mme fonction, puisque dans les deux
cas, tout le corps de la fonction doit tre rcrit et totalit. Il nest pas possible dajouter ou
supprimer seulement une seule ligne dans celui-ci. Leur seule diffrence rside donc dans le
fait que la fonction soit cre ou modifie. Voyons donc la syntaxe qui permet la modification
dune fonction en Transact SQL.

14
Cour Implmentation de SQL SERVER S4 2015

3.4. Suppression dune fonction


La suppression dune fonction peut, comme pour les procdures stockes ou tout autre objet
de la base, tre faite de deux manires. La premire est la mthode graphique. Nous ne
dtaillerons pas cette mthode, puisquelle est la mme pour tout objet de la base. Nous
rappellerons juste que il vous suffit dtendre, dans votre explorateur dobjet, les noeuds
correspondants au chemin de votre fonction, de faire un click droit sur celle-ci, et de
slectionner Supprimer .
Avec le langage Transact SQL, la mthode est aussi la mme que pour tout autre objet de la
base. Nous utiliserons linstruction DROP et nous ladapterons au cas dune fonction. Voici la
mthode type de suppression dune fonction par code T-SQL :

Linstruction DROPFUNCTION nous permet donc de supprimer une fonction, de nimporte


quel type. Il suffit juste de prciser le nom de la fonction aprs cette instruction.

15