Partager via


Modification des données dans les vues partitionnées

Mis à jour : 5 décembre 2005

Si une vue partitionnée ne peut pas être mise à jour, elle ne peut servir que de copie accessible en lecture seule de la table d'origine. Une vue partitionnée pouvant être mise à jour peut présenter toutes les fonctionnalités de la table d'origine.

Une vue est considérée comme une vue partitionnée pouvant être mise à jour si elle constitue un ensemble d'instructions SELECT dont les différents ensembles de résultats sont regroupés en un seul par le biais de l'instruction UNION ALL. Chaque instruction SELECT référence une seule table de base SQL Server. La table peut être une table locale ou une table liée référencée à l'aide d'un nom en quatre parties, la fonction OPENROWSET ou la fonction OPENDATASOURCE (vous ne pouvez pas utiliser une fonction OPENDATASOURCE ou OPENROWSET qui spécifie une requête directe).

En outre, les instructions de modification de données faisant référence à la vue doivent respecter les règles définies pour les instructions INSERT, UPDATE et DELETE.

Si la vue partitionnée est distribuée entre les serveurs, évitez d'utiliser des actions commandées en cascade ou par déclencheur sur les tables de base. Une action en cascade ou commandée par un déclencheur risquerait de modifier les données sous-jacentes et d'affecter la définition de la vue.

Les vues partitionnées distribuées peuvent être mises à jour seulement si l'utilisateur possède l'autorisation CONTROL, ALTER, TAKE OWNERSHIP ou VIEW DEFINITION sur chaque table sous-jacente à la vue. Pour plus d'informations, consultez Dépannage de la visibilité des métadonnées des vues partitionnées distribuées.

ms187067.note(fr-fr,SQL.90).gifRemarque :
Vous ne pouvez modifier les données par le biais d'une vue partitionnée de données distribuées que si vous installez Microsoft SQL Server 2005 Enterprise Edition ou Microsoft SQL Server 2005 Developer Edition. Cependant, vous pouvez modifier les données à l'aide d'une vue de données partitionnées (serveur local) dans n'importe quelle édition de SQL Server 2005.

Instructions INSERT

Les instructions INSERT ajoutent des données aux tables membres à travers la vue partitionnée. Les instructions INSERT doivent respecter les règles suivantes :

  • Toutes les colonnes doivent être incluses dans l'instruction INSERT, même si la colonne peut être NULL dans la table de base ou possède une contrainte DEFAULT définie dans la table de base.
  • Le mot clé DEFAULT ne peut pas être spécifié dans la clause VALUES de l'instruction INSERT.
  • Les instructions INSERT doivent fournir une valeur qui est compatible avec la logique de la contrainte CHECK définie sur la colonne de partitionnement pour l'une des tables membres.
  • Les instructions INSERT ne sont pas autorisées si une table membre contient une colonne avec une propriété d'identité.
  • Les instructions INSERT ne sont pas autorisées si une table membre contient une colonne timestamp.
  • Les instructions INSERT ne sont pas autorisées s'il existe une jointure réflexive sur la vue ou une des tables membres.

Instructions UPDATE

Les instructions UPDATE modifient les données dans une ou plusieurs tables membres à travers la vue partitionnée. Les instructions UPDATE doivent respecter les règles suivantes :

  • Les instructions UPDATE ne peuvent pas spécifier le mot clé DEFAULT comme valeur de la clause SET, même si la colonne possède une valeur DEFAULT définie dans la table membre correspondante.
  • La valeur de la colonne avec une propriété d'identité ne peut pas être modifiée : toutefois, les autres colonnes peuvent être mises à jour.
  • La valeur d'une PRIMARY KEY ne peut pas être modifiée si la colonne contient des données text, image ou ntext.
  • Les mises à jour ne sont pas permises si une table de base contient une colonne timestamp.
  • Les mises à jour ne sont pas autorisées s'il existe une jointure réflexive sur la vue ou une des tables membres.

Instructions DELETE

Les instructions DELETE suppriment des données dans une ou plusieurs tables membres à travers la vue partitionnée. Les instructions DELETE ne sont pas autorisées s'il existe une jointure réflexive sur la vue ou une des tables membres.

Voir aussi

Concepts

Mise en œuvre de serveurs de bases de données fédérés

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

5 décembre 2005

Nouveau contenu :
  • Des informations ont été ajoutées sur les autorisations requises pour mettre à jour une vue partitionnée distribuée.
Contenu modifié :
  • Le texte suivant a été supprimé : « Pour une vue partitionnée locale sur un serveur, la vue ne peut pas être mise à jour si une mise à jour ou une suppression en cascade ou commandée par un déclencheur est définie sur une ou plusieurs tables membres. »