Améliorations des fonctionnalités de programmation du moteur de base de données

Microsoft Dans SQL Server 2005, le Moteur de base de données offre plusieurs améliorations et de nouvelles fonctionnalités qui permettent d'accroître les possibilités et la productivité des programmeurs. Les objets de base de données peuvent être écrits en langages Microsoft .NET Framework, tels que Microsoft Visual C# . Le développement et le débogage sont intégrés dans l'environnement Microsoft Visual Studio, ce qui permet aux développeurs d'utiliser les mêmes outils pour développer des objets de base de données que ceux qu'ils utilisent pour le développement de composants et de services .NET Framework. Le langage Transact-SQL contient désormais des fonctionnalités qui permettent une gestion améliorée des erreurs et une prise en charge des requêtes récursives.

En outre, les interfaces d'accès au données qui permettent aux applications d'avoir accès aux instances du Moteur de base de données ont été améliorées en vue d'accroître la productivité des programmeurs. Pour plus d'informations, consultez Améliorations des interfaces d'accès aux données.

Les améliorations principales apportées au langage Transact-SQL sont répertoriées ci-dessous. Pour plus d'informations sur les nouvelles fonctionnalités Transact-SQL, consultezNouveautés et améliorations dans Transact-SQL (Transact-SQL).

Améliorations apportées aux fonctionnalités de programmation

Microsoft .NET Framework : intégration du Common Language Runtime

Le Common Language Runtime (CLR) Microsoft .NET Framework .NET Framework est à présent hébergé dans le Moteur de base de données SQL Server. Cet environnement d'intégration du Common Language Runtime prend en charge les objets de base de données procéduraux, notamment les fonctions, les procédures stockées et les déclencheurs, écrits en langages .NET Framework, tels que Microsoft Visual C# et Visual Basic .NET. Les langages .NET Framework prennent en charge la logique et les fonctionnalités qui ne sont pas disponibles dans le langage Transact-SQL, ce qui signifie qu'une logique plus complexe peut être à présent incorporée dans les objets de base de données. Les types et les agrégats définis par l'utilisateur peuvent également être écrits dans les langages .NET Framework pour générer des types de données plus complexes que ceux disponibles dans les versions antérieures de SQL Server.

L'environnement de programmation intégré du Common Language Runtime est intégré dans l'environnement de développement Visual Studio. Les développeurs utilisent les mêmes outils de développement et de débogage pour les objets de base de données que ceux utilisés pour les services et composants .NET de couche intermédiaires ou clients.

Pour plus d'informations, consultez Introduction to Common Language Runtime (CLR) Integration.

Microsoft .NET Framework : agrégats définis par l'utilisateur

Les fonctions d'agrégation définies par l'utilisateur et écrites en langage .NET Framework étendent les fonctions d'agrégation de base (par exemple, SUM, MIN et MAX) comprises dans Transact-SQL. Une fonction d'agrégation traite plusieurs valeurs de données et renvoie une valeur unique. Au lieu de récupérer un ensemble de résultats complet pour une application et d'exécuter une logique d'agrégation complexe dans l'application, une fonction d'agrégation .NET Framework peut exécuter la logique dans l'instance du Moteur de base de données et retourner uniquement la valeur finale à l'application.

Pour plus d'informations, consultez CLR User-Defined Aggregates.

Microsoft .NET Framework : types définis par l'utilisateur

Les types définis par l'utilisateur (UDT) du Common Language Runtime vous permettent d'implémenter des types de données de base de données dans les langages pris en charge par le Common Language Runtime .NET Framework. Ils sont implémentés en tant que classes dans un langage .NET Framework et ils peuvent posséder des structures et un comportement complexes, définis par les champs, les méthodes et les propriétés de la classe. Ils sont intégrés au système type du Moteur de base de données et peuvent être utilisés dans tous les contextes où les types intégrés sont utilisés.

Pour plus d'informations, consultez CLR User-Defined Types.

Microsoft .NET Framework : procédures stockées, déclencheurs fonctions définies par l'utilisateur

Les objets procéduraux de base de données peuvent être écrits en langages .NET Framework pour incorporer une logique plus complexe que celle prise en charge par le langage Transact-SQL. Les programmeurs développent les objets à l'aide du même langage et du même environnement de développement utilisés pour développer des composants et des services .NET Framework.

Pour plus d'informations, consultez CLR Stored Procedures, CLR Triggers, CLR User-Defined Functions.

Accès Web : accès SOAP HTTP natif

Les instances du Moteur de base de données peuvent être configurées avec des points de terminaison HTTP ou des adresses auxquelles les requêtes SOAP peuvent être envoyées à partir des applications. Les paquets sont reçus directement par l'instance du Moteur de base de données sans qu'il soit nécessaire de configurer un service de couche intermédiaire tel qu'un serveur Microsoft Internet Information Services (IIS).

Pour plus d'informations, consultez Utilisation des services Web XML natifs dans SQL Server 2005.

Améliorations apportées à Transact-SQL : nouveau type de données xml

Le Moteur de base de données propose un nouveau type de données xml qui prend en charge le stockage de documents et de fragments XML dans des bases de données. Les instances XML peuvent être stockées dans des colonnes, des paramètres de procédure stockée ou des variables créées à l'aide du type xml.

Pour plus d'informations, consultez Type de données xml.

Améliorations apportées à Transact-SQL : améliorations des instructions FOR XML

Vous pouvez imbriquer des instructions FOR XML pour créer une hiérarchie de documents XML. Les résultats d'une instruction FOR XML peuvent être stockées dans une colonne, un paramètre de procédure stockée ou une variable définie à l'aide du type xml.

Pour plus d'informations, consultez Nouvelles fonctionnalités de FOR XML.

Améliorations apportées à Transact-SQL : gestion améliorée des erreurs

Les programmeurs qui écrivent des traitements Transact-SQL, des procédures stockées, des déclencheurs et des fonctions définies par l'utilisateur peuvent utiliser la logique TRY-CATCH pour bloquer et gérer les conditions d'erreur.

Pour plus d'informations, consultez Gestion des erreurs du moteur de base de données.

Améliorations apportées à Transact-SQL : nouvelles vues pour les métadonnées

Le Moteur de base de données SQL Server 2005 contient deux nouveaux ensembles de vues pour interroger les métadonnées. Les vues du catalogue système fournissent des informations sur les objets, tels que les tables, les procédures stockées et les contraintes, définis dans les bases de données SQL Server. Les vues de gestion dynamique fournissent des informations sur l'état actuel d'une instance du Moteur de base de données. Les vues de gestion dynamique exposent les informations des structures de la mémoire qui ne sont pas permanentes sur le disque, telles que les informations sur les verrous, les threads et les tâches.

Pour plus d'informations, consultez Interrogation des catalogues système de SQL Server.

Améliorations apportées à Transact-SQL : fonctions de classement

Le Moteur de base de données contient une nouvelle catégorie de fonctions, appelée fonctions de classement. Les fonctions qui forment cette catégorie sont les suivantes :

  • RANK
  • DENSE_RANK
  • NTILE
  • ROW_NUMBER

Ces fonctions renvoient une valeur de classement pour chaque ligne d'une partition.

Pour obtenir la liste de ces fonctions, consultez Fonctions de classement (Transact-SQL).

Améliorations apportées à Transact-SQL : déclencheurs de langage de définition de données (DDL)

En plus de prendre en charge des déclencheurs qui sont déclenchés par des instructions DML (Data Manipulation Language, langage de manipulation de données) qui modifient les données (INSERT, UPDATE et DELETE), le Moteur de base de données contient une nouvelle classe de déclencheurs qui sont déclenchés par des instructions DDL qui modifient les objets de base de données (instructions qui commencent par CREATE, ALTER ou DROP, par exemple). Les déclencheurs DDL permettent d'effectuer un audit ou de réguler les modifications d'un schéma de base de données.

Pour plus d'informations, consultez Déclencheurs DDL.

Améliorations apportées à Transact-SQL : notifications d'événements

Un nouveau type d'objet, les notifications d'événements, peut être programmé dans le Moteur de base de données. Les notifications d'événements envoient des informations sur les instructions DDL Transact-SQL et les événements de trace SQL à un service Service Broker. Elles peuvent être utilisées pour enregistrer et examiner des modifications ou l'activité d'une base de données. Elles s'exécutent de façon asynchrone et offrent une autre solution de programmation que les déclencheurs DML et DDL et les traces SQL.

Pour plus d'informations, consultez Implémentation de notifications d'événements.

Améliorations apportées à Transact-SQL : extensions du traitement des files d'attente

Trois améliorations apportées à Transact-SQL permettent de simplifier la création d'applications Message Queuing dans des systèmes d'automatisation des processus de gestion fiables, distincts et à l'échelle d'Internet. Les instructions INSERT, UPDATE et DELETE prennent à présent en charge une clause OUTPUT qui renvoie des données selon les lignes modifiées par l'instruction. READPAST peut à présent être spécifié dans les instructions UPDATE et DELETE. Ces instructions peuvent ainsi ignorer les lignes de file d'attente détenues par d'autres tâches et choisir la prochaine ligne disponible dans une file d'attente.

Pour plus d'informations, consultez Clause OUTPUT (Transact-SQL) et Indicateurs de verrouillage.

Améliorations apportées à Transact-SQL : modèle de programmation d'objets volumineux unifié

Dans les versions antérieures de SQL Server, les chaînes volumineuses de plus de 8 000 octets devaient être stockées dans les types de données text, ntext et image dont le modèle de programmation était différent de celui des chaînes plus courtes (char, nchar, varchar, nvarchar, binary et varbinary). Le Moteur de base de données prend à présent en charge la spécification de longueur MAX pour les types de données plus courts. Lorsque MAX est spécifié, les types de données peuvent stocker les mêmes tailles de chaînes que les valeurs text, ntext et image (jusqu'à 2 gigaoctets) tout en étant traités de la même manière que lorsqu'ils stockent des chaînes plus courtes.

Pour plus d'informations, consultez Utilisation de types de données de valeur élevée.

Améliorations apportées à Transact-SQL : requêtes récursives

Une expression de table commune (CTE, Common Table Expression) est un ensemble de résultats stocké temporairement pendant l'exécution d'une instruction SELECT, INSERT, UPDATE ou DELETE. Son utilisation permet d'avoir recours à des requêtes récursives et de simplifier la logique en remplaçant l'utilisation de tables ou de vues temporaires.

Pour plus d'informations, consultez Utilisation d'expressions de table communes.

Améliorations apportées à Transact-SQL : nouvel opérateur APPLY

L'opérateur APPLY prend en charge l'appel d'une expression table (fonction table ou sous-requête) pour chaque ligne renvoyée par une référence de table externe. L'expression table est évaluée pour chaque ligne de la référence de table externe.

Pour plus d'informations, consultez Utilisation de APPLY.

Améliorations apportées à Transact-SQL : nouveaux opérateurs PIVOT et UNPIVOT

Les nouveaux opérateurs PIVOT et UNPIVOT font pivoter les jeux de résultats (les colonnes deviennent des lignes, et inversement). Cette action s'appelle faire pivoter des données ou créer des rapports d'analyse croisée. Ces opérations étaient possibles dans les versions antérieures de SQL Server mais elles demandaient une logique complexe qui est désormais simplifiée grâces aux opérateurs PIVOT et UNPIVOT.

Pour plus d'informations, consultez Utilisation des opérateurs PIVOT et UNPIVOT.

Améliorations apportées à Transact-SQL : notifications de requête

Les notifications de requête permettent à une application de mettre en cache un ensemble de résultats et demandent au Moteur de base de données de le notifier si aucune des données sous-jacentes n'est modifiée par une autre application. Les applications qui utilisent les notifications de requête ne doivent pas vérifier de façon périodique l'état des données de la base de données. Elles doivent uniquement valider les données si le Moteur de base de données les avertit d'une modification.

Pour plus d'informations, consultez Utilisation des notifications de requêtes.

Améliorations apportées à Transact-SQL : opérations en bloc sur OPENROWSET

OPENROWSET prend à présent en charge une opération BULK pour la copie en bloc de données de fichiers de données. Les opérations en bloc OPENROWSET sont contrôlées à l'aide de nouveaux indicateurs de table et d'options en bloc telles que BULK_BATCHSIZE et FORMATFILE. La nouvelle clause bulk_column_alias prend en charge l'attribution de noms de colonnes aux données d'opération en bloc.

Pour plus d'informations, consultez OPENROWSET (Transact-SQL), Indicateur de table (T-SQL).

Améliorations apportées à Transact-SQL : améliorations de l'opérateur TOP

L'opérateur TOP accepte à présent toute expression numérique (nom de variable, par exemple) au lieu d'un nombre entier uniquement pour spécifier le nombre de lignes renvoyées par l'opérateur. Il peut également être spécifié dans les instructions INSERT, UPDATE et DELETE.

Pour plus d'informations, consultez TOP (Transact-SQL).

Améliorations apportées à Transact-SQL : requête distribuée

L'instruction EXECUTE prend à présent en charge la clause LinkedServer AT qui spécifie l'exécution d'une procédure stockée sur un serveur lié. Le prédicat de texte intégral CONTAINS prend en charge les noms en quatre parties pour exécuter des requêtes sur des serveurs liés. Les requêtes distribuées prennent également en charge les nouveaux types d'objets volumineux nvarchar(max), varchar(max) et varbinary(max). De nouveaux événements de trace SQL ont été ajoutés pour faciliter l'analyse de l'interaction des requêtes distribuées et des fournisseurs OLE DB.

Pour plus d'informations, consultez EXECUTE (Transact-SQL), CONTAINS (Transact-SQL), Mappage des types de données à l'aide des requêtes distribuées et Catégorie d'événement OLEDB.

Améliorations apportées à Transact-SQL : clause TABLESAMPLE

La nouvelle clause TABLESAMPLE limite le nombre de lignes traitées par une requête. Contrairement à la clause TOP qui renvoie uniquement les premières lignes d'un ensemble de résultats, la clause TABLESAMPLE renvoie les lignes sélectionnées du jeu de lignes traité par la requête.

Pour plus d'informations, consultez Limitation du nombre d'ensembles de résultats au moyen de la clause TABLESAMPLE.

Améliorations apportées à Transact-SQL : nouvelles contraintes d'intégrité CASCADE

La clause REFERENCES prend à présent en charge les actions d'intégrité référentielle en cascade SET NULL et SET DEFAULT. SET NULL spécifie que les actions d'intégrité référentielle en cascade attribuent la valeur NULL aux clés étrangères. SET DEFAULT spécifie que les clés étrangères sont définies sur la valeur par défaut définie pour la colonne.

Pour plus d'informations, consultez Contraintes d'intégrité référentielle en cascade.

Améliorations apportées à Transact-SQL : les données de dépassement de ligne peuvent dépasser la taille de la page

Les lignes peuvent dépasser la limite de 8 060 octets si elle contiennent des colonnes de longueur variable qui utilisent les types de données nvarchar, varchar, varbinary et sql_variant. Si les largeurs combinées de ces colonnes de longueur variable entraînent le dépassement de la limite de taille de la page par la ligne, le Moteur de base de données peut déplacer les données des colonnes de longueur variable vers des pages distinctes.

Pour plus d'informations, consultez Données de dépassement de ligne de plus de 8 Ko.

Programmation de l'administration des bases de données : Nouvelle API SMO (SQL Server Management Objects)

Le modèle objet SMO étend et remplace le modèle objet DMO (Distributed Management Objects). Il fournit des classes pour configurer et gérer des instances du Moteur de base de données. Le modèle objet RMO (Replication Management Objects) complète le modèle objet SMO en fournissant des classes pour configurer et gérer la réplication.

Pour plus d'informations, consultez SQL Server Management Objects (SMO).

Programmation de l'administration des bases de données : nouveaux fournisseurs WMI de SQL Server

Le fournisseur WMI pour Gestion de l'ordinateur est un fournisseur d'instances. Le but de cette couche est de fournir une méthode unifiée pour créer une interface avec les appels API qui gèrent les opérations de registre demandées par les fonctionnalités de l'utilitaire du réseau client et serveur et qui permettent un contrôle et une manipulation améliorés des services SQL sélectionnés dans le composant logiciel enfichable Gestion de l'ordinateur.

Pour plus d'informations, consultez WMI Provider for Configuration Management.

Le fournisseur WMI pour les événements SQL Server vous permet d'utiliser Windows Management Instrumentation (WMI) pour surveiller les événements dans SQL Server. Ce fournisseur fonctionne en transformant SQL Server en un objet WMI managé. Tout événement qui peut générer une notification d'événements dans SQL Server peut tirer parti de WMI via ce fournisseur. En outre, l'Agent SQL Server, en tant qu'application de gestion qui interagit avec WMI, peut répondre à ces événements, ce qui augmente l'étendue des événements traités par l'Agent SQL Server par rapport aux versions précédentes.

Pour plus d'informations, consultez WMI Provider for Server Events.

Voir aussi

Concepts

Améliorations apportées au moteur de base de données

Aide et Informations

Assistance sur SQL Server 2005