라이브 제품 테이블에서 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 NULL에 NULL 어떤 상황에서는 다음이 짧은 메타 데이터 만 변경된다. SCH-M테이블에 대한 잠금 을 기다려야 할 수도 있지만 일단 변경 사항이 발생하면이를 즉시 포착 할 수 있습니다.

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

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


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