Message d’erreur lorsque vous essayez d’enregistrer une table dans SQL Server : « l’enregistrement des modifications n’est pas autorisée »

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 956176
Symptômes
Lorsque vous utilisez le langage de définition de données (DDL) pour modifier une table et puis vous essayez d’enregistrer la table dans Microsoft SQL Server 2008, le message suivant s’affiche :
L’enregistrement des modifications n’est pas autorisée. Les modifications que vous avez effectuées nécessitent des tableaux suivants pour être supprimée et recréée. Vous avez apporté les modifications apportées à une table qui ne peut pas être recréée ou activé l’option empêcher l’enregistrement des modifications qui requièrent la table d’être recréée.
Cause
Ce problème se produit lorsque l’option empêcher l’enregistrement de modifications qui nécessitent la recréation de la table est activée et que vous effectuez une ou plusieurs des modifications suivantes à la table :
  • Vous modifiez le paramètre Autoriser les valeurs NULL pour une colonne.
  • Vous réorganisez les colonnes de la table.
  • Vous modifiez le type de données de la colonne.
  • Vous ajoutez une nouvelle colonne.
Lorsque vous modifiez une table afin que vous modifiez la structure de métadonnées de la table, et puis que vous enregistrez la table, la table doit être en recréée en fonction de ces modifications. Cela peut entraîner la perte de métadonnées et une perte directe de données lors de la recréation de la table. Si vous activez l’option empêcher l’enregistrement de modifications qui nécessitent la recréation de la table dans la section Concepteur de la fenêtre Options de SQL Server Management Studio (SSMS) , vous recevez le message d’erreur qui est mentionné dans la section « Symptômes ».
Contournement
Pour contourner ce problème, utilisez les instructions Transact-SQL pour effectuer les modifications à la structure d’une table de métadonnées. Pour plus d’informations, reportez-vous à la rubrique suivante dans la documentation en ligne de SQL Server :

http://msdn.Microsoft.com/en-us/library/ms190273.aspx

Par exemple, pour modifier la colonne MyDate de type datetime dans la table appelée MyTable afin d'accepter les valeurs NULL vous pouvez utiliser:

alter table MyTable alter column MyDate7 datetime NULL

Important Nous recommandons fortement de ne pas contourner ce problème en désactivant l'option empêcher l'enregistrement de modifications qui nécessitent la recréation de table . Pour plus d’informations sur les risques liés à la désactivation de cette option, consultez la section « Informations complémentaires ».
Statut
Microsoft a confirmé qu'il s'agissait d'un bogue dans les produits Microsoft répertoriés dans la section « S'applique à ».
Plus d'informations
Pour modifier l’option empêcher l’enregistrement de modifications qui nécessitent la recréation de la table , procédez comme suit :
  1. Ouvrez SQL Server Management Studio (SSMS).
  2. Dans le menu Outils, cliquez sur Options
  3. Dans le volet de navigation de la fenêtre Options, cliquez sur Concepteurs.
  4. Activez ou désactivez la case à cocher empêcher l’enregistrement de modifications qui nécessitent la recréation de la table , puis cliquez sur OK.
Remarque Si vous désactivez cette option, vous n’êtes pas averti lorsque vous enregistrez la table les modifications que vous avez apportées ont changé la structure de métadonnées de la table. Dans ce cas, la perte de données peut se produire lorsque vous enregistrez la table.

Risque de désactiver l’option « Empêcher l’enregistrement de modifications qui nécessitent une recréation de table »

Bien que la désactivation de cette option peut vous aider à éviter de recréer une table, cela peut également mener à la perte des modifications. Par exemple, supposons que vous activez la fonctionnalité "suivi des modifications" dans SQL Server 2008 pour suivre les modifications apportées à la table. Lorsque vous effectuez une opération causant une re-création de la table, vous recevez le message d'erreur mentionné dans la section « Symptômes ». Toutefois, si vous désactivez cette option, le suivi des informations de modifications existant est supprimé lorsque la table est recréée. Par conséquent, nous recommandons que vous n’utilisez pas ce problème en désactivant l’option.

Pour déterminer si la fonctionnalité suivi des modifications est activée pour une table, procédez comme suit :
  1. Dans SQL Server Management Studio, localisez la table dans l’Explorateur d’objets.
  2. Avec le bouton droit de la table, puis cliquez sur Propriétés.
  3. Dans la boîte de dialogue Propriétés du tableau , cliquez sur Suivi des modifications.
Si la valeur de l’élément Suivi des modifications est True, cette option est activée pour la table. Si la valeur est False, cette option est désactivée.

Lorsque la fonctionnalité de suivi de modification est activée, utilisez les instructions Transact-SQL pour modifier la structure de métadonnées de la table.

Procédure pour reproduire le problème

  1. Dans SQL Server Management Studio, créez une table contenant une clé primaire dans l’outil Concepteur de tables.
  2. Avec le bouton droit de la base de données qui contient cette table, puis cliquez sur Propriétés.
  3. Dans la boîte de dialogue Propriétés de la base de données , cliquez sur Suivi des modifications.
  4. La valeur de l’élément Suivi des modifications de la valeur true, puis cliquez sur OK.
  5. Avec le bouton droit de la table, puis cliquez sur Propriétés.
  6. Dans la boîte de dialogue Propriétés du tableau , cliquez sur Suivi des modifications.
  7. La valeur de l’élément Suivi des modifications de la valeur true, puis cliquez sur OK.
  8. Dans le menu Outils, cliquez sur Options
  9. Dans la boîte de dialogue Options , cliquez sur les concepteurs.
  10. Activez la case à cocher empêcher l’enregistrement de modifications qui nécessitent la recréation de table , puis cliquez sur OK.
  11. Dans l’outil Concepteur de tables, modifiez le paramètre Autoriser les valeurs NULL dans une colonne existante.
  12. Essayez d’enregistrer la modification apportée à la table.
sqlsvr12 sqlsvr2008 « SQL Server 2008 outils » SQL2008RelNoteTools « modifier suivi »

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 956176 - Dernière mise à jour : 07/03/2016 11:45:00 - Révision : 9.0

Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core

  • kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtfr
Commentaires