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

Traductions disponibles Traductions disponibles
Numéro d'article: 956176 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

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é. Les modifications que vous avez effectuées nécessitent la suppression, puis la recréation des tableaux suivants. Vous avez apporté des modifications à une table qui ne peut pas être recréée ou activé l'option Empêcher l'enregistrement des modifications qui nécessitent la recréation de la table.

Cause

Ce problème se produit lorsque la Empêcher l'enregistrement des modifications qui nécessitent la recréation de table option est activée et que vous effectuez une ou plusieurs des modifications suivantes à la table :
  • Vous modifiez le Autoriser les valeurs null définition d'une colonne.
  • Vous réorganisez les colonnes de la table.
  • Vous modifiez le type de données de colonne.
  • Vous ajoutez une nouvelle colonne.
Lorsque vous modifiez une table afin de modifier sa structure de métadonnées et puis vous l'enregistrez, 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 pendant la recréation de la table. Si vous activez la Empêcher l'enregistrement des modifications qui nécessitent la recréation de table l'option dans la Concepteur section de la Options de SQL Server Management Studio (SSMS) fenêtre, vous recevez le message d'erreur mentionné dans la section « Symptômes ».

Contournement

Pour contourner ce problème, utilisez les instructions Transact-SQL pour effectuer les modifications à la structure de métadonnées d'une table. 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 pour accepter les valeurs NULL, vous pouvez utiliser :

alter table MyTable alter column MyDate7 datetime NULL

Important : Nous vous recommandons fortement de ne pas essayer de r'egler ce problème en désactivant l'option empêcher l'enregistrement des 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'agit d'un bogue dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour modifier la Empêcher l'enregistrement des modifications qui nécessitent la recréation de table une autre option, procédez comme suit :
  1. Ouvrez SQL Server Management Studio (SSMS).
  2. Sur la Outils menu, cliquez sur Options.
  3. Dans le volet de navigation de la Options fenêtre, cliquez sur Concepteurs.
  4. Activez ou désactivez la Empêcher l'enregistrement des modifications qui nécessitent la recréation de table case à cocher, puis cliquez sur OK.
Remarque : Si vous désactivez cette option, vous n'êtes pas averti, lors de l'enregistrement de la table, que les modifications que vous avez apportées ont changé la structure de métadonnées de la table. Dans ce cas, une perte de données peut se produire lorsque vous enregistrez la table.

Risque lié à la désactivation de l'option « Empêcher l'enregistrement des modifications qui nécessitent la recréation de table »

Bien que la désactivation de cette option peut vous aider à éviter de recréer une table, elle peut également provoquer la perte de certaines 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 qui provoque une recré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 ne contourniez 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, recherchez 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é Modifier le suivi 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 qui contient 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 le Propriétés de base de données boîte de dialogue, cliquez sur Suivi des modifications.
  4. Définir la valeur de la Suivi des modifications élément à True, puis cliquez sur OK.
  5. Avec le bouton droit de la table, puis cliquez sur Propriétés.
  6. Dans le Propriétés du tableau boîte de dialogue, cliquez sur Suivi des modifications.
  7. Définir la valeur de la Suivi des modifications élément à True, puis cliquez sur OK.
  8. Sur la Outils menu, cliquez sur Options.
  9. Dans le Options boîte de dialogue, cliquez sur Concepteurs.
  10. Cliquez pour sélectionner le Empêcher l'enregistrement des modifications qui nécessitent la recréation de table case à cocher, puis cliquez sur OK.
  11. Dans l'outil Concepteur de tables, modifier la Autoriser les valeurs null définition de colonne existante.
  12. Essayez d'enregistrer la modification à la table.

Propriétés

Numéro d'article: 956176 - Dernière mise à jour: dimanche 2 juin 2013 - Version: 7.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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
  • SQL Server 2012 Enterprise Core
Mots-clés : 
kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtfr
Traduction automatique
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
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com