Si je souhaite enregistrer des modifications dans une table, précédemment enregistrées dans SQL Server Management Studio (aucune donnée dans la table présente), j'obtiens un message d'erreur:
L'enregistrement des modifications n'est pas autorisé. Les modifications que vous avez apportées nécessitent la suppression et la recréation des tableaux suivants. Vous avez soit apporté des modifications à une table qui ne peut pas être recréée, soit activé l'option Empêcher l'enregistrement des modifications nécessitant la recréation de la table.
Qu'est-ce qui peut empêcher le tableau d'être facilement édité? Ou, est-ce la manière habituelle pour SQL Server Management Studio d'exiger la recréation de la table pour l'édition? Qu'est-ce que c'est - cette "option Empêcher l'enregistrement des modifications" ?
Réponses:
Allez dans Outils -> Options -> Concepteurs-> Décochez "Empêcher l'enregistrement des modifications qui nécessitent une recréation de table". Voila.
Cela se produit car il est parfois nécessaire de supprimer et de recréer une table afin de changer quelque chose. Cela peut prendre un certain temps, car toutes les données doivent être copiées dans une table temporaire, puis réinsérées dans la nouvelle table. Étant donné que SQL Server par défaut ne vous fait pas confiance, vous devez dire «OK, je sais ce que je fais, maintenant laissez-moi faire mon travail».
la source
Outils> Options
Décochez l'option ci-dessus
la source
Pour contourner ce problème, utilisez des instructions SQL pour apporter les modifications à la structure de métadonnées d'une table.
Ce problème se produit lorsque l' option «Empêcher l'enregistrement des modifications qui nécessitent une recréation de table» est activée.
Source: message d'erreur lorsque vous essayez d'enregistrer une table dans SQL Server 2008: «l'enregistrement des modifications n'est pas autorisé»
la source
Plutôt que de décocher la case (une mauvaise solution), vous devriez ARRÊTER de modifier les données de cette façon. Si les données doivent être modifiées, faites-le avec un script, de sorte que vous puissiez facilement les porter en production et qu'elles soient sous contrôle de source. Cela facilite également l'actualisation des modifications des tests après que la production a été poussée vers le bas pour permettre aux développeurs de travailler avec des données plus récentes.
la source
Allez à SSMS et essayez ceci
Menu >> Outils >> Options >> Concepteurs >> Décochez “Empêcher l'enregistrement des modifications qui nécessitent une recréation de la table”.
Voici une très bonne explication à ce sujet: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted-the-changes -vous-avez-fait-exiger-les-tableaux-suivants-à-être-déposés-et-recréés-vous-avez-soit-soit-apporté-des-modifications-à-un-onglet /
la source
De nombreuses modifications que vous pouvez effectuer très facilement et visuellement dans l'éditeur de table dans SQL Server Management Studio nécessitent en fait que SSMS supprime la table en arrière-plan et la recrée à partir de zéro. Même des choses simples comme la réorganisation des colonnes ne peuvent pas être exprimées dans une instruction SQL DDL standard - tout ce que SSMS peut faire est de supprimer et recréer la table.
Cette opération peut être a) très longue sur une grande table, ou b) peut même échouer pour diverses raisons (comme les contraintes FK et autres). Par conséquent, SSMS dans SQL Server 2008 a introduit cette nouvelle option que les autres réponses ont déjà identifiée.
Cela peut sembler contre-intuitif au premier abord pour empêcher de tels changements - et c'est certainement une nuisance sur un serveur de développement. Mais sur un serveur de production, cette option et sa valeur par défaut d'empêcher de tels changements deviennent un épargnant de vie potentiel!
la source
Il s'agit d'un risque de désactiver cette option. Vous pouvez perdre des modifications si le suivi des modifications est activé (vos tables).
Chris
http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/
la source