Vous êtes sur la page 1sur 12

Langage Transact SQL

Prof. C. El Amrani
Introduction
Le Transact SQL ou T-SQL est une extension de SQL92 et
propose de nombreuses améliorations :
• Déclaration de variables
• Opérateurs
• Structures de contrôle (if/case/while/goto ..)
• Curseurs (pointeurs de données)
• …
Utilisation des variables
Exemple :
declare @PrixMoy money
declare @NbProd smallint
set @PrixMoy=(select avg(UnitPrice) from products)
set @NbProd=(select count(ProductID) from products)
select @PrixMoy, @NbProd

Administration SQL Server


2
Structures de contrôle
if / else
Exemple :
declare @NbProd smallint
set @NbProd=(select count(ProductID) from products)
if (@NbProd > 100)
begin
print 'plus de 100 produits'
print @NbProd
declare @MaxPrix money
select @MaxPrix=max(UnitPrice) /* select et non set car on utilise la table */
from products
print 'le prix maximum est: ' + convert(varchar(10),@MaxPrix)+' euros'
end
else
begin
print 'moins de 100 references'
print @NbProd
end

Administration SQL Server


3
Structures de contrôle
while
Exemple :
declare @nombre smallint
set @nombre=1
while @nombre<=6
begin
if(@nombre % 2=0)
print 'le nombre ' + convert(varchar(2),@nombre) + ' est un multiple de 2'
else print 'le nombre ' + convert(varchar(2),@nombre) + ' n''est pas multiple de 2'
set @nombre=@nombre+1
end
Exécution :
le nombre 1 n'est pas multiple de 2
le nombre 2 est un multiple de 2
le nombre 3 n'est pas multiple de 2
le nombre 4 est un multiple de 2
le nombre 5 n'est pas multiple de 2
le nombre 6 est un multiple de 2

Administration SQL Server


4
Structures de contrôle
case
Exemple :
declare @nombre int, @phrase nvarchar(20)
set @nombre=10
select @phrase=
case
when @nombre<20 then 'inférieur à 20'
when @nombre<40 then 'inférieur à 40'
else 'supérieur à 40'
end
print 'le nombre est '+@phrase
Exécution :
le nombre est inférieur à 20
goto
Exemple :
declare @index smallint
set @index=1
debut:
print 'index= '+convert(varchar(2),@index)
set @index=@index+1
if @index != 4 goto debut

Administration SQL Server


5
Intégration de SQL
On peut utiliser le SQL standard avec les divers outils du
Transact SQL.
Exemple :
select UnitPrice,
case
when UnitPrice < 30 then 'pas cher'
when UnitPrice < 60 then 'moyen cher'
else 'tres cher'
end as commentaire
from products
Exécution :
UnitPrice commentaire
--------------------- ---------------
18.0000 pas cher
19.0000 pas cher
10.0000 pas cher
.... ....

Administration SQL Server


6
Procédures stockées
Une procédure stockée est prévue pour effectuer un traitement sur
les données.

Création
Exemple :
create procedure GetProductID
as
select ProductID
from products
go

Utilisation
Exemple :
exec GetProductID
Exécution :
ProductID
-------------
1
2
3

Administration SQL Server


7
Procédures stockées
Paramètres
Les procédures stockées peuvent être paramétrables.
Exemple :
create procedure LeProduit (@produit int)
AS
select ProductID, ProductName
from products
where ProductID=@produit
GO
Utilisation :
exec LeProduit @produit=10
ou :
exec LeProduit 10
Exécution :
ProductID ProductName
------------- -------------------
10 Ikura
Administration SQL Server
8
Fonctions définies par l’utilisateur
Il existe deux types de fonctions :
• La fonction scalaire, renvoie une seule valeur, mais peut
accepter plusieurs paramètres

• La fonction de type table, renvoie plusieurs valeurs


organisées sous forme de table

Administration SQL Server


9
Fonctions scalaires
La fonction scalaire se distingue par son type de sortie,
définie par le mot clé RETURNS, et par sa sortie stipulée par le
mot clé RETURN.
Exemple :
create function PTTC(@PHT float, @TVA float)
returns float
as
begin
return (@PHT*(1+@TVA))
end
Une fonction scalaire peut être utilisée dans tout endroit où
une expression peut l’être.
Exemple :
print dbo.PTTC(10.33,0.25)
Administration SQL Server
10
Fonctions de type table
Exemple :
create function PU(@Prix money)
returns table
as
return(
select ProductID, UnitPrice
from products
where UnitPrice<@Prix )
Une fonction table peut être employée partout où une table ou
une vue peut l’être.
Exemple :
select * from PU(10.25)

Administration SQL Server


11
Déclencheurs
Un déclencheur est une procédure stockée, appartenant à
une table spécifique, rattachée à un évènement produit
par une instruction INSERT, DELETE ou UPDATE.
SQL Server a deux types principaux de déclencheurs :
AFTER (ou FOR) et INSTEAD OF.
Exemple :
create trigger test1 on commandes
for insert
as…
créé un déclencheur sur insert sur la table commandes.

Administration SQL Server


12

Vous aimerez peut-être aussi