Question

J'utilise SQL Server 2008 R2.

I ai une table qui comporte plusieurs champs dont un champ nvarchar (max).

j'obtiens un message d'erreur quand je tente d'ajouter un nouveau champ de type varbinary (max): «Enregistrement des modifications ne sont pas permis le changement que vous avez besoin des tableaux suivants à droped et recréés ».

Est-il possible d'avoir un champs nvarchar (max) et un varbinar (max) dans la même table?

La seule façon de résoudre ce problème, pour créer une nouvelle table avec la nouvelle structure et de transférer les données?

Était-ce utile?

La solution

Oui, il est possible.

Si vous voyez ce message, vous devez avoir essayé d'insérer la nouvelle colonne au milieu de ceux qui existent déjà dans le concepteur de table SSMS. Ajoutez à l'extrémité des colonnes existantes, alors la table ne doit être complètement reconstruit.

Ou tout simplement exécuter

alter table YourTable add newcol varbinary(max) null

Autres conseils

Oui, bien sûr - vous avez probablement juste cette nouvelle option « sécurité » dans SSMS toujours activé (il est activé par défaut):

text alt

qui est sous Tools > Options ....

Aller à Tools | Options > Designers et décocher l'option « Empêcher l'enregistrement des modifications qui nécessitent la recréation de table »

SQL Server ne vous permet pas d'évoluer la table de cette façon, car il ne peut pas modifier le stockage de la table existante dynamiquement. Si vous voulez faire cela, vous devez créer une nouvelle table avec le nouveau schéma et le remplir avec les données de la table d'origine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top