안녕하세요
다름이 아니오라 저희 프로젝트 진행중에 어려운 상황이 발생되어
문의하고자 합니다.
MS SQL SERVER 스탠다드 2005에서 MS SQL 2000 Enterprise 로
링크드서버를 만들어 2000서버에 있는 특정테이블을 업데이트 하는 프로시저 및 트리거를 만들었습니다.
해당 업데이트 문장은 아래와 같습니다.
declare @goods_type varchar(1)
set @goods_type = '1'
update fs2kif_test.bhfs2k.dbo.tb_aa04 set aa04_sagb = @goods_type
where aa04_styl = 'HKTS3001'
* 위문장에서 aa04_sagb 원격테이블에 해당하는 컬럼 타입이 varchar(1) 로 되어있구요
@goods_type 변수를 동일하게 varchar(1) 잡아서 업데이트를 돌리면 1초만에 처리가 되는데
@goods_tyep 변수를 varchar(2) 로 변경후 업데이트를 하면 10초만에 처리가 됩니다. ( numeric 타입들은 틀려도 상관이 없고, 프로시저,트리거,쿼리 애널라이저 상관없이 동일한 증상 )
업데이트문장에 변수대신 상수값을 강제로 넣으면 이상없이 됩니다.
MS SQL 2005 같은 버전끼리는 전혀 문제가 안됩니다.
물론 변수를 맞추어서 처리는 할수는 있는데 text 타입의 필드는 맞추어도 안되더라구요
시원한 해결방법 부탁드려요 도대체 이해가 안되서요
SQL SERVER 2000 버전을 2005로는 올릴수 없는 상황입니다. |