-2
우리는 2008 sql 서버에서 프로 시저를 테스트하고 있습니다. 이 프로 시저에는 다음과 같은 삭제 쿼리 만 있습니다.SQL Server 2000 및 SQL Server 2008 쿼리
delete from dbo.tgrid_detl
where SOURCE_KEY in (
SELECT tg.SOURCE_KEY
FROM dbo.tgrid_detl tg
WHERE NOT EXISTS
(select *
FROM dbo.tgrid_stagging s,dbo.tgrid_detl tg
where cast(s.SUBMISSION_NO as varchar(18)) +
cast(year(s.POLICY_EFCTV_DT)as varchar) +
s.PRODCT_COVG_TYP_CD +
s.UW_SYSTEM_ID +
s.PRODUCT_ABBR +
s.PRODUCT_CD = tg.source_key
)
and tg.F_TRANS_CD = 'N'
and tg.UPDATE_ID is null
and tg.COMMENTS_UPDATE_DT is null
and tg.SOURCE_ID = 'EDW_SUB'
)
SQL 2000 서버에서는 정상적으로 작동하지만 SQL Server 2008에서는 행을 삭제하지 않습니다. 이것에 대한 조언을 원하십니까? 감사.
tgrid_daging에 가입 된 하위 쿼리는 2008 상자에서 데이터를 생성합니까? 이것은 2000 db에서 돌아 오는 결과 집합과 다른 것입니까? – Johnv2020
직접 디버깅하기 위해 취한 조치는 무엇입니까? 하위 쿼리를'select' 문으로 실행하여 동일한 행을 반환하는지 확인해 보았습니까? –
insertnal 하위 쿼리가 동일한 행을 되 돌리는 중입니다. 하지만 어떤 구성을 확인할 수 있습니다 내가 널 값을 확인하는 데 "IS NULL"을 사용하고 있음을 알고 있습니다. 그 밖의 무엇을 확인해야하는지. – user863952