Einfügen von Werten in Tabelle von derselben Tabelle aus

Mithilfe von SQL server (2012)
Ich habe eine Tabelle TABLE_A mit Spalten

(id, name, category, type, reference)

id ein Primärschlüssel ist, und wird gesteuert durch eine separte Tabelle (table_ID) , hält die primären nächste verfügbare id. In der Regel Einfügungen gemacht werden, von Seiten der Anwendung (java), der kümmert sich um die Aktualisierung dieser id wird die nächste nach jedem einfügen. (durch EJBs oder manuell, usw..)
Allerdings
Ich würde gerne schreiben, gespeicherte Prozedur (genannt von java-Anwendung),

- 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.

Ich denke an eine Abfrage ähnlich diesem

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'
          )

Da, ich weiß nicht, wie viele Datensätze ich einfügen , das ist, wie viele Elemente in der Ergebnismenge einer Kriterien-Abfrage

 select /*field */
          from TABLE_A
          where REFENCE in (/*query returning value 'AAA' */),

Ich weiß nicht, wie zu kommen mit dem Wert der ID, die auf jeder Platte. Kann jemand etwas empfehlen, bitte ?

Da die ID ist Primärschlüssel, sind Sie unter Verwendung eines natürlichen oder künstlichen Schlüssel (Identity-Spalte, oder etwas anderes)
Identität. id ist der primary key

InformationsquelleAutor Dima R. | 2013-09-05

Schreibe einen Kommentar