Jordan 님이 쓰신 글 :
: 안녕하세요..
: firebird 칼럼 사이즈 변경을 하기 위해.. 델파이에서 IBScript를 사용여.. 아래와 같이 변경을 했시만.. 신규 칼람추가후 인식을 못한다고 에러가 발생함.... 몇일계속 고생하고 있음.
:
: IBScript에서 아래와 같이 입력하고
:
: ALTER TABLE EQUIP_TBL ADD EQUIP_ID CHAR(02) NOT NULL;
: UPDATE EQUIP_TBLSET EQUIP_ID = EQUIPID WHERE EQUIPID IS NOT NULL;
: ALTER TABLE EQUIP_TBL DROP EQUIPID ;
: ALTER TABLE EQUIP_TBLALTER EQUIP_ID TO EQUIPID ;
: ALTER TABLE EQUIP_TBL DROP EQUIP_ID ;
:
: 위와같이 IBSCRIPT를 실행하면...
:
: "SQL error code = -206
: Colunm unknown
: EQUIP_ID
: At line 1, column 17' 이렇게 발생합니다.
:
: 위에 명령어 실행하기 전에.. IBTransaction1.StartTransaction 시작을 하였고.
: 명령어 수행 후 IBTransaction1.Commit 했는데. 왜 인식을 못하지요 ?
:
: 도와주세요.
안녕하세요. 까막입니다.
원래 기존에 데이터가 존재하는 테이블에 필드를 추가할때는 NOT NULL 속성으로 필드를 추가할 수가 없습니다.
속성 자체는 NOT NULL 인데, 필드를 추가할때는 DEFAULT 값이 지정된게 없으므로 당연하겠죠.
그런데, Firebird 에서는 가능하네요. -- 버그인지...
이 부분은 Backup/Restore 시에 문제가 발생할 여지가 있으므로 주의하셔야 합니다.
아무튼, 위 첫번째 줄이 정상적으로 실행이 되는 상황에서는 마지막 줄 말고는 오류가 있을 만한 부분이 없네요.
ALTER TABLE EQUIP_TBLALTER EQUIP_ID TO EQUIPID ;
이 부분에서 EQUIP_ID 를 EQUIPID 로 필드명을 변환을 하였으므로.
ALTER TABLE EQUIP_TBL DROP EQUIP_ID ;
이 부분을 실행하면 EQUIP_ID 라는 필드가 없으므로 오류가 나겠죠.
혼이 살아 있을까.... 대한민국.
|