Les utilisateurs potentiels : Les administrateurs de bases de données, Les développeurs, Le support et les opérations, Les architectes, Les analystes métier. T-SQL reste le langage de prédilection pour la manipulation de données relationnelles.
Instructions DDL (Data Définition Language) : Varchar(max), nvarchar(max), varbinary(max), xml, Déclencheurs sur les instructions DDL (DDL Triggers). Instructions DML (Data Manipulation Language) : Gestion des exceptions (Try/Catch), Instructions CTE (Common Table Expression), Opérateur pivot, Fonctions de classement, TOP, La clause Output, Mode de verrouillage (Snapshot Isolation). Support de XML. Partitionnement et clichés instantanés.
En SQL 2000, longueur maximale de 8000 octets : Au-delà, il fallait utiliser text, ntext, image. Avec SQL 2005, longueur maximale de 2 Go. Mot clé max : Allocation dynamique de l’espace.
Extension des déclencheurs pour supporter des événements sur les DDL (Data Definition Language). Les événements concernés concernent tous les traitements de type DDL : CREATE_TABLE, ALTER_PROCEDURE, DROP_LOGIN, etc. Traitement au niveau de la base de données ou du serveur : DDL_DATABASE_LEVEL_EVENTS. Eventdata() : Nouvelle fonction, Renvoi des données avec un type XML en fonction du type d’événement concerné.
OUTPUT clause for DML : Possibilité de renvoyer des lignes sur les opérations de Delete/Update/Insert. L’image des données insérées ou supprimées est donc disponible. Renvoie les lignes dans une table spécifiée : OUTPUT… INTO…
SQL Server 2000 : SELECT TOP, SQL Server 2005 : SELECT TOP ( ) : Aussi supporté avec INSERT, UPDATE, DELETE, peut aussi être une variable, une requête… peut aussi être une variable, une requête… Syntaxe précédente supportée pour des raisons de compatibilité. Remplacera à terme SET ROWCOUNT.
SQL Server 2000 : SELECT TOP. SQL Server 2005 : SELECT TOP ( ) : Aussi supporté avec INSERT, UPDATE, DELETE, peut aussi être une variable, une requête… peut aussi être une variable, une requête… Syntaxe précédente supportée pour des raisons de compatibilité. Remplacera à terme SET ROWCOUNT.
Un nouveau mode de gestion des exceptions permet de récupérer le contexte de la transaction lors de l’exécution de la transaction ABORT. Evolution de qui reste supporté.
Nouvelles fonctions permettant le classement de lignes de tables et la pagination. Classement, plusieurs possibilités : ROW NUMBER RANK, DENSE RANK NTILE Simplification des procédures T-SQL. Accélération du temps de traitement.
Numérote séquentiellement les lignes en fonction d’une des valeurs retournées par ligne (croissante ou décroissante). Le ROW NUMBER est une valeur unique, il n’y a pas « d’ex æquo », il est nécessaire d’ajouter un élément discriminant. Possibilité de mise en page.
Permet un sous-classement par catégorie.
Gère les « ex æquo » : possibilité d’avoir plusieurs numéros de rang identiques. RANK : pas forcément de numérotation séquentielle des rangs. DENSE RANK : la numérotation des rangs est forcément séquentielle.
Crée des groupes selon la valeur d’une colonne. Calcul des groupes : NB ligne par groupe = Σnb Ligne/Nb membre par groupe, Le reste est reporté sur les premiers groupes. Possibilité de nommer les groupes.
PIVOT : Transforme un ensemble de lignes en colonnes, Similaire à la fonction Access TRANSFORM, Utile pour des scénarios de type OLAP. UNPIVOT : Inverse une opération PIVOT. APPLY : Permet d’appliquer une fonction de type “table” à chaque ligne renvoyée par une requête.
Permet de « ré-architecturer » un schéma de table pour une génération plus souple de rapports. UNPIVOT : opération en sens inverse.
Applique une fonction à chaque ligne retournée dans une requête, Deux possibilités : CROSS APPLY OUTER APPLY
CTE : table temporaire créée dans le contexte d’une requête. Très similaire aux vues, mais incluse dans une requête. Nouvelle syntaxe T-SQL : WITH CTE_nom (colonne1, colonne2,..) as (SELECT …..) SELECT ….. Peut être utilisé devant SELECT, UPDATE, DELETE, INSERT. Plusieurs CTEs peuvent être insérées dans un même traitement. Possibilité d’inclure, de référencer la table CTE dans sa requête de création (notion de récursivité).
Transaction level ‘Snapshot Isolation’ :Transaction level ‘Snapshot Isolation’ : –Garantit l’intégrité Transactionnelle (ACID), –Mode de verrouillage basé sur le versionning, –Les lecteurs ne posent pas de verrou, –Déclaration : Set Transaction Isolation level Snapshot,Set Transaction Isolation level Snapshot, Alter database mydatabase set allow_snapshot_isolation on.Alter database mydatabase set allow_snapshot_isolation on.
Nouveau type de données natif XML Gestion des schémas (optionnelle) Indexation des colonnes de type XML Manipulation du XML : Support de Xquery 1.0 Améliorations : For XML OpenXML
XQuery : langage d'interrogation des données XML // n'importe quel Attributs d’un noeud [condition] [n] ième sous-arbre [RANGE n TO m] sous-arbre n à m
Table des ventes du mois : Ventes du mois : traitements transactionnels, Ventes des mois précédents : traitements d’analyses, Non partitionné. Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre E:
Table des ventes du mois : Ventes du mois : traitements transactionnels, Ventes des mois précédents : traitements d’analyses, Partition selon les mois. Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre FG1 FG2 FG3 FG4 FG5 FG6 FG7 FG8 FG9 FG10 FG11 FG12 E: F: G: H: I:: J: K: L: M:: N: O: P:
Crée instantanément « une copie en lecture » de la base, Seules les modifications depuis le cliché sont enregistrées, Il est possible de créer plusieurs clichés instantanés, Il est possible de restaurer la base depuis un snapshot.
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.