假設我在數據庫中有一個Projects
表來追蹤活動項目,以及一個Tasks
表,該表追蹤每個Project
的Tasks
。每個表都有一個正常的自動生成主鍵,但是我也希望每個任務的TaskNumber
相對於Project
。因此,當Tasks
被添加到Project
時,它們被分配從001,002,003等遞增的數字,從001開始爲每個項目。如何設置SQL Server來生成分組索引?
首先,我想我可以存儲一個NextTaskNumber
字段,每個Project
。但是,在任何有機會添加新任務並增加NextTaskNumber
字段之前,多人可能會從數據庫請求相同的號碼。我不想以Project
中的重複任務號碼結束。
更新
感謝您的答案,到目前爲止,但我忘了提一個臨界點。我實際上是通過NHibernate訪問數據庫,而不是直接通過SQL命令。那麼有沒有辦法通過N Hibernate映射來做到這一點?或者,也可以在創建新任務時在數據庫上設置觸發器以填充任務號字段?
實際上,現在我想起了它..你可以在Task表上使用INSERT觸發器來做到這一點,該表也使用與上面的類似的事務來更新被插入的數據,同時更新NextTaskNumber 。我沒有做過這樣的事情,但它可能會奏效。 – roberttdev 2011-04-22 23:59:28