SQLサーバー(2012)を使用して、テーブルがあります-列のあるTABLE_A
(id, name, category, type, reference)
id - 主キーであり、次に使用可能な主 ID を保持する別個のテーブル (table_ID) によって制御されます。通常、挿入はアプリケーション側 (Java) から行われ、挿入のたびにこの ID が次の ID に更新されます。(EJBを介して、または手動などで)しかし、ストアドプロシージャ(Javaアプリケーションから呼び出される)を書きたいと思います
- finds records in this table where (for example) reference = 'AAA' (passed as
parameter)
- Once multiple records found (all with same reference 'AAA', I want it to INSERT new
records with new ID's and reference = 'BBB', and other columns (name, category, type)
being same as in the found list.
これに似たクエリを考えています
INSERT INTO table_A
(ID
,NAME
,CATEGORY
,TYPE,
,Reference)
VALUES
(
**//current_nextID,**
(select NAME
from TABLE_A
where REFENCE in (/*query returning value 'AAA' */),
(select CATEGORY
from TABLE_A
where REFENCE in (/*query returning value 'AAA' */),
(select TYPE
from TABLE_A
where REFENCE in (/*query returning value 'AAA' */),
'BBB - NEW REFERENCE VALUE BE USED'
)
挿入するレコードの数がわからないため、基準クエリの結果セットに含まれる項目の数です。
select /*field */
from TABLE_A
where REFENCE in (/*query returning value 'AAA' */),
すべてのレコードで ID の値を計算する方法がわかりません。誰でも何か提案できますか?