Essere consapevoli
con qualcosa di simile
ALTER TABLE [table] ALTER COLUMN [column] VARCHAR(MAX)
https://dba.stackexchange.com/questions/15007/change-length-of-varchar-on-live-prod-table
Answare di
Martin Smith:
Se si stanno aumentando a varchar(100 - 8000)
(vale a dire qualcosa di diverso da varchar(max))
e si sta facendo questo tramite TSQL piuttosto che la GUI SSMS
ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL
e non alterando la nullità della colonna da
NULL
a
NOT NULL
(che bloccherebbe la tabella mentre tutte le righe sono convalidate e potenzialmente scritte ao da
NOT NULL
a
NULL
in alcune circostanze, questa è una modifica rapida solo ai metadati. Potrebbe essere necessario attendere il blocco
SCH-M
sul tavolo ma, una volta acquisito, il cambiamento sarà praticamente istantaneo. Un avvertimento da tenere presente è che durante l'attesa di un blocco
SCH-M
altre query verranno bloccate invece di saltare la coda davanti a sé, quindi si potrebbe voler aggiungere prima un
SET LOCK_TIMEOUT
. Verificare inoltre nella dichiarazione
ALTER TABLE
se si specifica esplicitamente
NOT NULL
se è lo stato della colonna originale, altrimenti la colonna verrà modificata per consentire
NULL
.
Strano, l'ho provato in SQL Server 2005, funziona perfettamente per me. – anonymous
BTW, qual è stato l'errore generato? – anonymous
'Il salvataggio delle modifiche non è permesso. Le modifiche apportate richiedono che le seguenti tabelle vengano eliminate e ricreate. Hai apportato modifiche a una tabella che non può essere ricreata o attivata l'opzione Impedisci il salvataggio delle modifiche che richiedono la creazione di una tabella. " L'opzione 'Impedisci salvataggio delle modifiche' non è abilitata ... – Darbio