MSSQL 2000 입니다.
Insert 문으로 데이터를 입력하는데.. 조건에 따라서 입력하고 싶습니다.
A 라는 테이블이 있을경우
A 테이블에 '1' 이라는 값을 넣고 싶습니다.
단 조건은 A 테이블에 '1' 이라는 값이 존재하지 않는다는 조건에서요..
쿼리를 두번 실행시켜서 하면 쉽게 해결이 되는데..
한번에 해결하려니 힘이 드네요
아시는분 답글 부탁드립니다. ^^
column에 unique제약이 걸려있다면 한 방에 되겠죠..
일반 insert문으로요..
하지만, 이 경우 error가 발생하는데, 이 error를 무시하는 방식으로 programming할 수 있습니다..
단지, 별로 추천하고 싶지 않은 방법이죠.. ^^;;
참고로 존재하는지 확인한 다음 값을 insert하기 위해서는 반드시 select & insert를 해야 할 것 같은데요..
그럼, select를 효율적으로 하는 방법을 강구하심이 좋을 듯..
그럼..
절차적으로 생각하다보면 해결이 안됩니다.A테이블에 존재하지 않는 집합을 만들면 간단히 해결될거 같습니다.예제)
--테스트용 A테이블 생성 및 값입력create table A( col int)
insert into A values (1);go
--중복된 값을 입력해 본다.
declare @val intset @val = 1
insert into Aselect valfrom (select @val val) as Bwhere not exists (select 'X' from A where col = val)
결과(0개 행 적용됨)
A테이블에서 col = 1 인것이 존재하여 집합이 만들어 지지 않으므로 insert가 되지 않을 것입니다.