Pregunta

Estoy utilizando SQL Server 2008 R2.

Tengo una tabla que tiene varios campos que incluyen un campo nvarchar (max).

Cuando intento y añadir un nuevo campo de tipo varbinary (max) me aparece un mensaje de error: "guardar los cambios, no se permite el cambio que ha hecho requiere las siguientes tablas para ser droped y recreados".

¿Es posible tener un nvarchar (max) y un varbinar campos (max) en una misma mesa?

Es la única manera de solucionar este problema, para crear una nueva tabla con la nueva estructura y transferir los datos?

¿Fue útil?

Solución

Sí, es posible.

Si usted está viendo este mensaje que debe haber intentado insertar la nueva columna en el medio de los existentes en el diseñador de tablas SSMS. Añadir que en el extremo de las columnas existentes a continuación, la tabla no tendrá que ser completamente reconstruido.

O sólo hay que ejecutar

alter table YourTable add newcol varbinary(max) null

Otros consejos

Sí, por supuesto - es probable que sólo tiene esta nueva opción de "seguridad" en SSMS todavía activada (que es activada por defecto):

text alt

que está bajo Tools > Options ....

A Tools | Options > Designers y desactive la opción 'evitar guardar cambios que requieren mesa de re-creación'

SQL Server no se que le permite evolucionar la tabla de esta manera, ya que no puede modificar el almacenamiento para la tabla existente de forma dinámica. Si quieres hacer esto, usted tiene que crear una nueva tabla con el nuevo esquema y rellenarlo con los datos de la tabla original.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top