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 ?
Identität. id ist der primary key
InformationsquelleAutor Dima R. | 2013-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht klar, aus Ihrer Frage, wie die Sequenzierung behandelt, aber Sie können etwas tun, wie dieses
Beispiel für die Nutzung:
Hier ist SQLFiddle demo
Danke, Sie. Ja, es hat geholfen. Es hat mir geholfen. Aber für den eigentlichen Taten, gingen wir mit der Anwendung Weg - Schleife durch die Elemente, die auf der Java-Seite. "Weil, das ist, wie es war, die durch die Anwendung seit der Gründung". Für mich war das ein performance-Problem, also wollte ich eine komplette sql Weg, aber ...
Ich verstehe. Manchmal die Konsistenz in der client-code überwiegen die Optimierung einer bestimmten Abfrage...
InformationsquelleAutor peterm