- - PR -
INSERTステートメントのVALUES句にSELECTステートメント
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-06-15 11:17
DBMS:SQLSERVER2000
・サンプル テーブル1{ カラムA smallint カラムB varchar カラムC varchar } 用件:テーブル1に値を挿入する際、カラムAは常にMAX+1を指定したい。 前提:テーブルの設定上、オートインクリメントはされていない。 テーブルの設定は変えない。 SQLは最小で実行したい。(1文にて) 現状は、SELECTでMAX+1を取得し、その値をINSERTに使用するようにしています。 しかし、システムの問題により、テーブルのロックなどをかけていない為、負荷をかけた場合にプライマリーキーの重複が発生していしまいます。 ちなみに、トランザクションも、フレームワーク上のみで管理されているので、意図的に操作ができません。 自分で調査した範囲では、SQLSERVER6.0、6.5まではINSERTステートメントのVALUES句にSELECTステートメントを指定できたようなのですが、2000では推奨されていない(使用できない)ようです。 これに変わる方法がありましたら、教えてくださいませ。 |
1
