Transact-SQLLe Transact-SQL (T-SQL) est une extension propriétaire de Sybase et Microsoft au langage SQL[1]. Transact-SQL a été développé à l'origine par la société Sybase, dès les premières versions de son moteur de base de données du même nom. De manière similaire au PL/SQL d'Oracle, Transact-SQL fournissait le moyen d'étendre les fonctionnalités de base du SGBD, via des programmes appelés "procédures stockées". Le code source comme compilé, est en effet stocké dans la base de données, par opposition aux programmes écrits en langage de programmation classique, dont le code source d'une part, le code compilé d'autre part, sont stockés dans des fichiers du système de fichiers. Lorsque Microsoft a souhaité étendre son offre logicielle pour inclure un SGBD relationnel, il a passé des accords avec l'un des acteurs de l'époque, le challenger derrière principalement Oracle, RTI Ingres, Informix : Sybase. Le SGBD Sybase a été porté sur Windows. Microsoft a peu à peu acquis le savoir-faire en matière de SGBD relationnel, et développé son propre moteur de base de données, Microsoft SQL Server, à partir de la souche Sybase. Sybase de son côté a fait évoluer son SGBD, devenu depuis Adaptive Server Enterprise. Transact-SQL est ainsi aujourd'hui le langage de programmation associé à la fois aux SGBD Microsoft SQL Server et Sybase Adaptive Server Enterprise. Par rapport au SQL, le T-SQL ajoute les fonctionnalités suivantes :
Programmation procéduraleLes principaux mots clefs permettant des instructions de programmation procédurale en Transact-SQL sont
IF DATEPART(dw, GETDATE()) = 6 OR DATEPART(dw, GETDATE()) = 7
PRINT 'Nous sommes en week-end.'
ELSE
PRINT 'Nous sommes en semaine.'
IF DATEPART(dw, GETDATE()) = 6 OR DATEPART(dw, GETDATE()) = 7
BEGIN
PRINT 'Nous sommes en week-end.'
PRINT 'Faites une pause !'
END
ELSE
BEGIN
PRINT 'Nous sommes en semaine.'
PRINT 'Vite, au boulot !'
END
OpérateursOpérateurs arithmétiquesTransact-SQL permet l'utilisation des opérateurs arithmétiques classiques.
Opérateurs de comparaison
Variables localesLes variables locales sont souvent utilisées comme compteurs dans des boucles DéclarationLa déclaration de variables locales est similaire à celle de langages impératifs classiques. Elle suit la syntaxe suivante : declare @nom_variable type_données [, @nom_variable type_données]...
Exemples : declare @a int
declare @b char(20)
declare @c float
OU declare @a int, @b char(20), @c float
La deuxième syntaxe est plus efficace en termes de mémoire et de performance. Utilisation dans des sous-routinesUne sous-routine assignant une valeur à une variable locale ne doit retourner qu'une seule valeur. Exemples : declare @veryhigh money
select @veryhigh = max(price)
from titles
if @veryhigh > $20
print "Aïe!"
declare @one varchar(18), @two varchar(18)
select @one = "un", @two = "deux"
if @one = "un"
print @one
if @two = "deux"
print @two
declare @tcount int, @pcount int
select @tcount = (select count(*) from titles),
@pcount = (select count(*) from publishers)
select @tcount, @pcount
Valeur NULLLes variables locales ont initialement pour valeur NULL lorsqu'elles sont déclarées. Elles peuvent également recevoir la valeur NULL d'une commande SELECT. NULL étant une valeur spéciale, la comparaison entre des variables de valeur NULL et d'autres valeurs NULL doit suivre des règles particulières qui sont résumées dans le tableau ci-dessous.
DELETE et UPDATELe Transact-SQL permet d'ajouter une clause L'exemple ci-dessous va effacer de la table DELETE utilisateur
FROM utilisateur as u
JOIN drapeau_utilisateur as d
ON u.id = d.id
WHERE d.nom = 'En attente'
Notes et référencesVoir aussiLiens externes
|
Portal di Ensiklopedia Dunia