table-a 에 숫자 4자리로 일련번호를 가지고 있고, table-a 에서 일련번호를 가져와 +1 해서 다시 table-a에 update 하려고 합니다. 조회하고 update 할 동안 다른 사용자에서는 접근을 못하게 하여 사용자 마다 한번씩 일련번호가 +1 되게 하려하는데 어찌하면 좋을지... ASP를 사용하여 아래 처럼 사용해 왔었는데 table-a 에서 같은 값을 가져오는 경우가 있는거 같습니다. 한번 봐주시고 틀린점 있으면 지적해주시면 감사하겠습니다.
Set recpos = Server.createObject("ADODB.Connection") set recpos99 = server.CreateObject ("ADODB.RECORDSET") recpos.open Application("objconn_str")
recpos.Execute "set lock mode to wait 150" recpos.execute "set isolation to repeatable read"
recpos.BeginTrans
call ct99_update()
recpos.Execute sqlstr recpos99.close if Err.number = 0 then recpos.CommitTrans recpos.execute "set isolation to committed read" else Response.Write Err.Description recpos.RollbackTrans end if set recpos99 = nothing set recpos = nothing
sub ct99_update() sqlstr = " select 일련번호 from table-a for update" recpos99.Open sqlstr, recpos
sqlstr = " update ct99 set " & _ " 일련번호 = " & 일련번호 + 1 end sub
|