라이브 제품 테이블에서 varchar의 길이 변경


25

현재 프로덕션 앱에서 사용중인 MS SQL Server 2008 R2 DB 서버가 있습니다.

앱의 새로운 기능 향상으로 이제 varchar(100)테이블 의 열 길이를 늘려야합니다.

현재 데이터에 영향을주지 않고 prod DB의 기존 열 길이를 늘릴 수 있습니까?

서비스 중단을 피하기 위해 근무 외 시간에이 변경을 완료해야합니까?

답변:


42

당신이 varchar(100 - 8000)(즉, 이외의 것 varchar(max)) 으로 늘리고 있고 SSMS GUI가 아닌 TSQL을 통해이 작업을 수행하는 경우

ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL

로부터 열을 변경하지 Null 허용 NULL하는 NOT NULL(모든 행을 확인하면서 테이블을 잠그는 것이다 잠재적 기록 또는부터) NOT NULLNULL 어떤 상황에서는 다음이 짧은 메타 데이터 만 변경된다. SCH-M테이블에 대한 잠금 을 기다려야 할 수도 있지만 일단 변경 사항이 발생하면이를 즉시 포착 할 수 있습니다.

알아야 할 한 가지주의 사항은 SCH-M잠금을 기다리는 동안 다른 쿼리 큐를 앞으로 이동하지 않고 차단되므로 SET LOCK_TIMEOUT첫 번째 추가를 고려할 수 있다는 것 입니다.

또한 ALTER TABLE 명시 적으로 지정한 명령문 NOT NULL에서 원래 열 상태인지 지정 하십시오. 그렇지 않으면 열이 허용되도록 변경됩니다 NULL.


빠른 답변 주셔서 감사합니다, 그냥 확인했다. 거의 즉각적이었다.
anataliocs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.