Table에 자동순번을 PK로 사용하는 경우가 많다.
** 자동순번 필드는 데이터를 넣으면 자동으로 번호가 증가된다.
** SQL-SERVER 는 필드속성 자체를 자동순번으로 정의할 수 있으나
ORACLE은 시퀀스를 이용한다.
자동순번을 가진 Table이 하위의 Table을 가지고 있으면 그 하위 Table은
상위 Table의 순번을 가져와서 데이터를 저장하는 경우가 많다.
그때 상위 Table의 순번을 참조하는 기본적인 SQL 문은 다음과 같다.
-다 음-
1) ORACLE : select SEQCUST.currval id from dual
** SEQCUST 는 시퀀스
2) SQL-SERVER : select @@identity id
** 상위 Table에 데이터 저장 후 실행해야 한다.
** VB로 구현한 Module
Public Function GetSystemSeq(ByRef Cn As ADODB.Connection, Optional sSeq As Variant) As Long
'
' SQL-SERVER (iGblDB: 1)/ORACLE (iGblDB: 0) 시스템 순번 구하기
'
Dim sSql As String
Dim RST As ADODB.Recordset
'
Dim iSeq As Long
'
If iGblDB = 0 Then
sSql = "select " & CmyStrTrim(sSeq) & ".currval id from dual "
Else
sSql = "select @@identity id "
End If
Set RST = GetADORecordset(Cn, sSql)
'
iSeq = 0
'
If Not RST.EOF Then
iSeq = CmyLng(RST("id"))
End If
'
Call ReleaseADORecordset(RST)
'
GetSystemSeq = iSeq
'
End Function
출처: www.erpplus.co.kr