Hỏi về SQL Server (!)



  • Hơi lạc đề tí nhưng giờ không biết đi đâu hỏi, có thể có bác nào có kinh nghiệm hoặc đã gặp vấn đề này rồi thì trả lời giúp với
    Hiện tại, trong db mình có:

    1. Bảng tblABC(colNumber, colIsActive).
    2. Một store procedure spGetNumber, tác dụng:
      2.1. Select @X = Min(colNumber) of tblABC where colIsActive=0
      2.2. Thực hiện abxc, xyz.... (nói chung có thể tốn 1 khoảng time)
      2.3. Update tblABC set colIsActive=1 where @X = colNumber
      2.4. Output @X
      (Thứ tự là vậy, ko thay đổi được)

    Vấn đề: spGetNumber này sẽ được gọi liên tục, có thể đồng thời trên các connection khác nhau, nhưng làm sao phải đảm bảo lấy @X không đc trùng lắp.
    Mình đang nghĩ tới lock, nhưng tài liệu về nó lan man quá...
    Bác nào cho ý kiến tham khảo với, thank các bác trước.


Log in to reply