Tenga en cuenta
con algo como
ALTER TABLE [table] ALTER COLUMN [column] VARCHAR(MAX)
https://dba.stackexchange.com/questions/15007/change-length-of-varchar-on-live-prod-table
Answare de
Martin Smith:
Si usted está aumentando a varchar(100 - 8000)
(es decir, que no sea varchar(max))
nada y que está haciendo este a través de TSQL en lugar de la GUI SSMS
ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL
y no altera la anulabilidad de la columna desde
NULL
a
NOT NULL
(que bloquearía la tabla mientras todas las filas están validadas y potencialmente escritas en o desde
NOT NULL
a
NULL
en algunos casos, este es solo un cambio de metadatos rápido. Es posible que deba esperar un bloqueo
SCH-M
en la tabla, pero una vez que admita que el cambio será prácticamente instantáneo. Una advertencia que debe tenerse en cuenta es que, durante la espera de un bloqueo
SCH-M
, se bloquearán otras consultas en lugar de saltarse la cola, por lo que le recomendamos que agregue primero un
SET LOCK_TIMEOUT
. También asegúrese de que en la declaración
ALTER TABLE
especifique explícitamente
NOT NULL
si ese es el estado original de la columna, de lo contrario la columna se cambiará para permitir
NULL
.
Extraño, lo probé en SQL Server 2005, funciona bien para mí. – anonymous
Por cierto, ¿cuál fue el error arrojado? – anonymous
'No se permiten cambios de guardado. Los cambios que ha realizado requieren que se eliminen y vuelvan a crear las siguientes tablas. Ha realizado cambios en una tabla que no se puede volver a crear o habilitó la opción Evitar guardar cambios que requieren que la tabla se vuelva a crear. ' La opción 'Evitar guardar cambios' no está habilitada ... – Darbio