2011. 12. 1. 09:15

이미 사용중이 테이블에 ID 사양(Identity Specification)이 지정되있지 않아 지정했더니 "작업을 실행하는데 오래 걸릴수 있다"라는 식의 경고가 뜨길례 "그래라"하고 살포시 무시 했는데...

테이블을 수정할 수 없습니다. 
제한 시간이 만료되었습니다. 작업을 완료하기 전에 제한 시간이 경과되었거나 서버가 응답하지 않았습니다.

Unable to modify table. 
Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

오 쉣!!!
검색해봐도 그렇다할 답이 안나오네 ㅡ,.ㅡ;;

그런던중 발견한것이
"트렌잭션 시간 늘려보시죠?"
오홍

sql 서버 메니저에 도구 > 옵션 > Designers
에 보면 테이블 옵션에 '트랜잭션 제한 시간'이라는 것이 있습니다.

이것을 수정해주면 더 오래 기다립니다.



앵?
네. 그렇습니다. 그냥 더 오래 기다리는 것뿐 최대값인 65535초가 넘는 작업은 할수 없습니다 OTL
이때는 쿼리를 통해 수동으로 옮겨 주셔야 합니다.

먼저 디자이너로 테이블을 생선한후 '맨날 쓰지만 맨날 까먹는 SQL 쿼리'에서 말한  '테이블의 데이터만 복사하기'라는 항목이 있습니다.
이 이방법을 이용하여 수동으로 데이터를 옮겨주시면 됩니다.
(참고 : 맨날 쓰지만 맨날 까먹는 SQL 쿼리)

--ID증감값이 있다면 무시하고 복사할수 있도록 옵션을 켜준다.
SET IDENTITY_INSERT  [대상 테이블] on
--[대상 테이블 필드명]의 순서와 [원본 테이블]의 필드명 순서는 동일해야 한다.
insert into [대상 테이블]( [대상 테이블 필드명])
select  [원본 테이블 필드명] from [원본 테이블]
--ID증감값 인서트 옵션 끄기
SET IDENTITY_INSERT  [대상 테이블] off