Lorsque je crée une table dans SQL Server et que je l'enregistre, si j'essaie de modifier la conception de la table, comme si je modifiais un type de colonne d'int en réel, j'obtiens cette erreur:
L'enregistrement des modifications n'est pas autorisé. La modification que vous avez effectuée nécessite que le tableau suivant soit supprimé et recréé. Vous avez soit apporté des modifications à une table qui ne peuvent pas être recréées, soit activé l'option empêchant l'enregistrement des modifications nécessitant la recréation de la table.
Pourquoi dois-je recréer la table? Je veux juste changer un type de données de smallint
à real
.
La table est vide et je ne l'ai pas utilisée jusqu'à présent.
Boîte de dialogue De Enregistrer (non autorisée) sous MSDN :
La boîte de dialogue Save (non autorisée) vous avertit que l'enregistrement des modifications est non autorisé car les modifications que vous avez apportées nécessitent la liste tables à supprimer et à recréer.
Les actions suivantes peuvent nécessiter la recréation d'une table:
- Ajouter une nouvelle colonne au milieu de la table
- Déposer une colonne
- Modification de la nullabilité de la colonne
- Changer l'ordre des colonnes
- Changer le type de données d'une colonne <<<<
Pour modifier cette option, dans le menu Outils, cliquez sur Options, développez Cliquez sur Designers, puis cliquez sur Designers de tables et de bases de données. Sélectionnez ou désélectionnez Empêcher l'enregistrement des modifications qui nécessitent le tableau recréé case à cocher.
Voir aussi Entrée de blog Colt Kwong:
L'enregistrement des modifications n'est pas autorisé dans SQL 2008 Management Studio
Utilisez-vous SSMS?
Si oui, allez dans le menu Outils >> Options >> Designers et décochez"Empêcher l'enregistrement des modifications nécessitant la création d'un tableau"
Empêcher l'enregistrement des modifications nécessitant la recréation de la table
Cinq clics rapides
- Outils
- Options
- Designers
- Empêcher l'enregistrement des modifications nécessitant la recréation de la table
- D'ACCORD.
Après avoir sauvegardé, répétez la procédure pour cocher à nouveau la case. Ceci protège contre la perte accidentelle de données.
Plus d'explications
Par défaut, SQL Server Management Studio empêche la suppression de tables car, lorsqu’une table est supprimée, le contenu de ses données est perdu. *
Lorsque vous modifiez le type de données d'une colonne dans la vue en mode Création de la table, lors de l'enregistrement des modifications, la base de données supprime la table en interne, puis en crée une nouvelle.
* Vos circonstances spécifiques ne poseront pas de conséquences puisque votre table est vide. Je fournis cette explication entièrement pour améliorer votre compréhension de la procédure.
Pour modifier l'option Empêcher l'enregistrement des modifications nécessitant l'option de recréation de la table, procédez comme suit:
Ouvrez SQL Server Management Studio (SSMS) . Dans le menu Outils, cliquez sur Options.
Dans le volet de navigation de la fenêtre Options, cliquez sur Designers.
Activez ou désactivez la case à cocher Empêcher l'enregistrement des modifications nécessitant la recréation de la table, puis cliquez sur OK.
Note: Si vous désactivez cette option, vous n'êtes pas averti lorsque vous enregistrez la table que les modifications apportées ont modifié la structure de métadonnées de la table. Dans ce cas, vous risquez de perdre des données lorsque vous enregistrez la table.
C’est un problème de réglage très simple et facile à résoudre en 5 secondes en suivant ces étapes
Pour vous permettre de sauvegarder les modifications après avoir modifié la table, procédez comme suit pour votre paramètre SQL:
Allez sur Outil situé en haut du menu.
Choisissez options dans la liste déroulante.Vous avez maintenant une fenêtre contextuelle sélectionner Designers option située dans le bloc de menus de gauche. Décochez l'option Empêcher l'enregistrement des modifications nécessitant la recréation de la table . Cliquez sur le bouton OK.
Et juste au cas où quelqu'un ne ferait pas attention non plus (comme moi):
Pour Microsoft SQL Server 2012, dans la boîte de dialogue des options, il y a une petite case à cocher sournoise qui masque APPARENTEMENT tous les autres paramètres. Même si je dois dire que j'ai raté ce petit monstre tout ce temps !!!
Après cela, vous pouvez passer aux étapes suivantes, concepteur, décochez cette case pour éviter de sauver bla bla bla ...
Copié à partir de ce lien "... Important Nous vous recommandons vivement de ne pas contourner ce problème en désactivant l'option Empêcher l'enregistrement des modifications nécessitant la recréation de la table. Pour plus d'informations sur les risques de rotation Pour désactiver cette option, reportez-vous à la section "Plus d'informations". ''
"... Pour contourner ce problème, utilisez des instructions Transact-SQL pour apporter les modifications à la structure de métadonnées d'une table. Pour plus d'informations, reportez-vous à la rubrique suivante dans de la documentation en ligne de SQL Server
Par exemple, pour modifier la colonne MyDate de type datetime dans une table appelée MyTable afin qu'elle accepte les valeurs NULL, vous pouvez utiliser:
alter table MyTable alter column MyDate7 datetime NULL "
1) Ouvrez l’outil qui se trouve en haut.
2) Choisissez des options dans Liste de choix.
3) La fenêtre contextuelle s'affiche et vous pouvez maintenant sélectionner l'option de création dans la liste des menus sur le côté gauche.
4) Maintenant, il faut décocher les modifications de sauvegarde qui nécessitent la re-création de la table. Maintenant, cliquez sur OK.
Dans le menu Outils, cliquez sur Options, sélectionnez Concepteurs dans le menu latéral, puis décochez-la pour empêcher les modifications pouvant entraîner la reconstitution d'un tableau. Puis enregistrez les modifications
Si vous ne pouvez pas voir "Empêcher l'enregistrement des modifications qui requièrent une re-création de table" dans une liste comme celle-ci L'image
Vous devez activer le suivi des modifications.
Si vous utilisez SQL Server Server Management Studio, allez à Outils >> Options >> Designers et décochez “Empêcher l'enregistrement des modifications qui nécessitent une re-création de table” Cela fonctionne avec moi