Należy pamiętać
z czymś
ALTER TABLE [table] ALTER COLUMN [column] VARCHAR(MAX)
https://dba.stackexchange.com/questions/15007/change-length-of-varchar-on-live-prod-table
Martina Smitha answare:
Jeśli zwiększając ją do varchar(100 - 8000)
(czyli coś innego niż varchar(max))
i robisz to poprzez TSQL zamiast GUI SSN
ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL
i nie zmieniając opcji nullability kolumny
NULL
do
NOT NULL
(który zablokuje tabelę, a wszystkie wiersze zostaną sprawdzone i potencjalnie zapisane do lub od
NOT NULL
do
NULL
w niektórych okolicznościach, to jest tylko szybka zmiana tylko metadanych. Może być konieczne poczekanie na blokadę
SCH-M
na stole, ale gdy dojdzie do tego, że zmiana będzie prawie natychmiastowa. Jednym z ostrzeżeń, o których należy pamiętać, jest to, że podczas oczekiwania na blokadę inne zapytania będą blokowane, zamiast przeskakiwać kolejkę przed nimi, dlatego warto najpierw rozważyć dodanie
SET LOCK_TIMEOUT
. Upewnij się również, że w instrukcji
ALTER TABLE
jawnie określono
NOT NULL
, jeśli jest to oryginalny stan kolumny, ponieważ w przeciwnym razie kolumna zostanie zmieniona, aby umożliwić
NULL
.
Dziwne, wypróbowane w SQL Server 2005, działa dobrze dla mnie. – anonymous
BTW, jaki był błąd? – anonymous
"Zapisywanie zmian jest niedozwolone. Wprowadzone zmiany wymagają usunięcia i ponownego utworzenia następujących tabel. Wprowadziłeś zmiany do tabeli, których nie można ponownie utworzyć lub włączono opcję Zapobieganie zapisywaniu zmian, które wymagają ponownego utworzenia tabeli. " Opcja "Zapobieganie zapisywaniu zmian" nie jest włączona ... – Darbio