回答編集履歴

3

追記

2021/03/10 09:28

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -15,3 +15,15 @@
15
15
 
16
16
 
17
17
  そのテーブルに**IDENTITY**を設定し、[追加後に番号を取得](https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/retrieving-identity-or-autonumber-values)するか、発番用のテーブルを別途準備して、**for update**などでロックした上での管理にするかです。
18
+
19
+
20
+
21
+ 追記
22
+
23
+ --
24
+
25
+ よく見ると、発番のテーブルで管理はされているのですね。
26
+
27
+ それで、他の処理で発番済みの値が使用されるなら、単にトランザクションの問題でしょう。
28
+
29
+ 要は、発番したあとに直ぐにコミットせず、その後のデータ処理が行われる迄、コミットしていないという事なのではないでしょうか。

2

追記

2021/03/10 09:28

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
 
16
16
 
17
- そのテーブルに**IDENTITY**を設定し、追加後に番号を取得するか、発番用のテーブルを別途準備して、**for update**などでロックした上での管理にするかです。
17
+ そのテーブルに**IDENTITY**を設定し、[追加後に番号を取得](https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/retrieving-identity-or-autonumber-values)するか、発番用のテーブルを別途準備して、**for update**などでロックした上での管理にするかです。

1

推敲

2021/03/10 08:12

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -10,8 +10,8 @@
10
10
 
11
11
 
12
12
 
13
- このような場合、更新前のテーブルに結果を求めるのには無理があります。
13
+ このような場合、追加前のテーブルに結果を求めるのには無理があります。
14
14
 
15
15
 
16
16
 
17
- そのテーブルに**IDENTITY**を設定し、更新後に番号を取得するか、発番用のテーブルを別途準備して、**for update**などでロックした上での管理にするかです。
17
+ そのテーブルに**IDENTITY**を設定し、追加後に番号を取得するか、発番用のテーブルを別途準備して、**for update**などでロックした上での管理にするかです。