Transact-SQL

Transact-SQL

Le Transact-SQL (T-SQL) est une extension propriétaire de Microsoft et Sybase au langage SQL. Microsoft a inclus le T-SQL dans son serveur de base de données Microsoft SQL Server alors que Sybase l'utilise dans son Adaptive Server Enterprise successeur de Sybase SQL Server.

Par rapport au SQL, le T-SQL ajoute les fonctionnalités suivantes :

Sommaire

Programmation procédurale

Les principaux mots clefs permettant des instructions de programmation procédurale en Transact-SQL sont BEGIN et END, BREAK, CONTINUE, GOTO, IF et ELSE, RETURN, WAITFOR, et WHILE.

IF et ELSE permettent des exécutions conditionnelles. L'exemple ci-dessous va afficher "Nous sommes en week-end" si le jour J appartient au week-end, "Nous sommes en semaine" pour un jour de la semaine.

IF DATEPART(dw, GETDATE()) = 6 OR DATEPART(dw, GETDATE()) = 7
   PRINT 'Nous sommes en week-end.'
ELSE
   PRINT 'Nous sommes en semaine.'

BEGIN and END délimite un bloc d'instruction. Si plus d'une instruction sont nécessaires dans un bloc conditionnel, il faut utiliser BEGIN et END :

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

WAITFOR va permettre de temporiser la procédure, en attendant un certain temps ou un moment précis de la journée.

RETURN est utilisé pour terminer immédiatement l'exécution d'une procédure stockée ou bien renvoyer le résultat d'une fonction.

BREAK va terminer le bloc d'une boucle WHILE, tandis que CONTINUE force l'exécution d'une nouvelle itération de la boucle.

Opérateurs

Opérateurs arithmétiques

Transact-SQL permet l'utilisation des opérateurs arithmétiques classiques.

  • + (Plus)
  • - (Moins)
  • * (Multiplié)
  • / (Divisé)
  •  % (Modulo)

Opérateurs de comparaison

  • = (Égal à)
  • > (Supérieur à)
  • < (Inférieur à)
  • >= (Supérieur ou égal à)
  • <= (Inférieur ou égal à)
  •  != (Différent de)
  • <> (Différent de), non standardisé par l'ISO
  •  !< (Non inférieur à), non standardisé par l'ISO
  •  !> (Non supérieur à), non standardisé par l'ISO

Variables locales

Les variables locales sont souvent utilisées comme compteurs dans des boucles WHILE ou des blocs de types IF ... ELSE. Elles peuvent être utilisées dans des commandes ou dans des procédures stockées. La procédure utilise ces variables de manière automatique et non-interactive lorsqu'elle est exécutée. Les variables locales peuvent être utilisées partout où la syntaxe de Transact-SQL exige l'utilisation d'une expression.

Déclaration

La 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-routines

Une 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 NULL

Les 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.
Une expression peut être une variable, une constante, ou une combinaison des deux contenant des opérateurs arithmétiques.

Comparaisons entre valeurs NULL
Type de Comparaison Opérateur = Opérateurs <, >, <=, !=, !<, !>, <>
Comparaison entre deux colonnes de valeur NULL FALSE FALSE
Comparaison entre colonne de valeur NULL et expression NULL FALSE FALSE
Comparaison entre expression NULL et colonne de valeur NULL FALSE FALSE
Comparaison entre deux expressions NULL TRUE FALSE

DELETE et UPDATE

Le Transact-SQL permet d'ajouter une clause FROM aux opérations DELETE et UPDATE, permettant la jointure de tables.

L'exemple ci-dessous va effacer de la table utilisateur ceux qui ont le drapeau "En attente".

DELETE utilisateur
  FROM utilisateur as u
  JOIN drapeau_utilisateur as d
    ON u.id = d.id
 WHERE d.nom = 'En attente'

Critiques

Voir aussi



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Transact-SQL de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Transact-SQL — (T SQL)  процедурное расширение языка SQL компанией Microsoft (для Microsoft SQL Server) и Sybase (для Sybase ASE). SQL был расширен такими дополнительными возможностями как: управляющие операторы, локальные и глобальные переменные,… …   Википедия

  • Transact-SQL — (T SQL) is Microsoft s and Sybase s proprietary extension to the SQL. Microsoft s implementation ships in the Microsoft SQL Server product. Sybase uses the language in its Adaptive Server Enterprise, the successor to Sybase SQL Server.Transact… …   Wikipedia

  • Transact SQL — (TSQL) ist eine Erweiterung des SQL Standards durch Sybase und Microsoft und umfasst Fehlerbehandlung, Row Processing und Variablen Deklaration. Verwendung Man kann Programme (Stored Procedures) auf dem Datenbankserver speichern und damit die… …   Deutsch Wikipedia

  • Transact-SQL — Este artículo o sección necesita ser wikificado con un formato acorde a las convenciones de estilo. Por favor, edítalo para que las cumpla. Mientras tanto, no elimines este aviso puesto el 14 de mayo de 2011. También puedes ayudar wikificando… …   Wikipedia Español

  • Transact-SQL — SQL Erweiterungen durch Microsoft/Sybase zur Programmierung von Server Funktionen, Transaktionen u.a …   Acronyms

  • Transact-SQL — SQL Erweiterungen durch Microsoft/Sybase zur Programmierung von Server Funktionen, Transaktionen u.a …   Acronyms von A bis Z

  • Database Console Commands (Transact-SQL) — The Database Console Commands (DBCC) are a series of statements in Transact SQL programming language to check the physical and logical consistency of a Microsoft SQL Server database.[1] These commands are also used to fix existing issues.[1] They …   Wikipedia

  • SQL — Класс языка: Мультипарадигмальный Появился в: 1974 Автор(ы): Дональд Чэмбэрлин Рэймонд Бойс Релиз: SQL:2008 (2008) Типизация данных …   Википедия

  • SQL — ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. SQL ist von ANSI und ISO standardisiert und wird von fast allen gängigen Datenbanksystemen unterstützt. Die Bezeichnung SQL (offizielle… …   Deutsch Wikipedia

  • SQL Server Reporting Services — (сокр. SSRS, рус. Службы отчетности SQL Server)  программная серверная система создания отчетов, разработанная корпорацией Microsoft. Она может быть использована для подготовки множества интерактивных и печатных отчетов. Система… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”