테이블에 더 이상 NVARCHAR (256)이 아니고 NVARCHAR (MAX)이되도록 열이 있습니다. 이 작업을 수행하는 명령을 알고 있습니다 (ALTER TABLE ALTER COLUMN NVARCHAR (MAX)). 내 질문은 정말로 혼란에 관한 것입니다. 프로덕션 환경에서이 작업을 수행해야하며 실제 환경에서이 작업을 수행하는 동안 사용자에게 사용상의 어려움이 있을지 궁금합니다. 그 당시 데이터베이스를 사용하고있는 사용자는 부팅 할 수 있습니까? 이 작업이 너무 오래 걸릴 수 있습니까? 백업을하고 가능하면 시간에서 그것을 할 -ALTER TABLE ALTER COLUMN이 (가) 진행중인 db 액세스를 방해합니까?
감사합니다,
Sachin
이것은 데이터 작업 크기가 아닙니다. 표의 행 수는 사안에 영향을 미치지 않습니다. –
@ Martin Smith : 나는 그것에 대해 잘 모르겠습니다 ...'varchar (n)'형식은'varchar (max)'와 동일하지 않습니다. 데이터베이스는 더 긴 일부 값을 테이블 외부에 저장하도록 선택할 수 있습니다. – Guffa
아니면 적어도 나는 그것이 있어야한다고 생각하지 않았지만 테스트는 그것이 (+1)임을 보여주는 것처럼 보입니다. 'ALTER TABLE X ALTER COLUMN Bar NVARCHAR (4000) null'은 즉각적이지만 NVARCHAR (max)는 분명히 없기 때문에 Extents에 많은'U' lock이 있고 꺼내 질 페이지에'X' lock이 많이 있습니다. SQL Server 2008의 내부 문서에서는 'max'데이터 유형의 실제 길이가 '8000'보다 작 으면 'nvarchar (x)'와 동일하게 처리해야합니다. –