꾸벅 :-)
구조가 같은 여러 테이블이 하나의 시퀀스한 Identity를 공유해서 PK로 사용할 수 있는 방법은
없을까요?
예를 들자면 다음과 같습니다.
거래처별로 나눠져 있는 입고라는 테이블(즉, A거래처 입고 테이블, B거래처 입고 테이블...)이 있다고 하고, 이 입고 테이블의 컬럼으로 시퀀스한 입고번호와, 입고 일자, 상품코드 등이
있다고 하죠.
이때 이 입고번호를 전역적으로 관리되는 Identity가 있어서 각 테이블에 행이 insert될때
이들 테이블 모두에 대해 고유하면서도 시퀀스한 값을 갖도록 하는 방법을 알고 싶습니다.
이 걸 파악해야 시간에 대한 range query를 했을때, 순서별로 어떤 거래처에서 어떤 물품이
입고 되었는지를 파악할 수 있거든요.
여러가지 생각해봤습니다.
그중 view를 이용하는 방법도 생각해보고, 입고일자를 그냥 PK로 하는 방법등을 생각해봤지만 앞에것은 identity가 테이블에만 적용되니깐 안되고, 뒤에 것은 MS-SQL이 1/300초 정도의
시간정확도를 가지니깐 동시에 서로 다른 거래처 입고 테이블에 삽입될 경우 시퀀스한 순서를 파악하기 힘들다는 단점이 있더군요. 마지막으로 입고번호를 uniqueidentifier 데이타 타입으로 하는 것도 생각했지만 시퀀스 하지는 않더군요.
....
오라클 같으면 시컨스에 대해 전역적으로 NEXTVAL을 사용해서 쓸 수 있는데,
MS-SQL은 특별한 방법을 못찾겠습니다.
고수분들의 고견을 기다립니다.
|