Nel corso di una complessa struttura di database, ho bisogno di fornire all'utente un mezzo per modificare i dati memorizzati in una serie di tabelle. Sebbene tutti i tipi di dati siano uguali, non sono allineati 1: 1 nel loro nome. Per alleviare questo, ho creato una query che associa i nomi originali (che provengono da report esterni) ai nomi utilizzati internamente; da queste domande, tutto è alimentato in una gigantesca query UNION.Come posso creare una query UNION modificabile?
Tutti i tipi di dati e le dimensioni del campo sono allineate correttamente.
Cos'altro devo fare per far funzionare questa query UNION?
Questa è la SQL corrente dietro la query:
SELECT * FROM MappingQuery1 UNION SELECT * FROM MappingQuery2;
EDIT:
Una risposta al di sotto postato un link ad un KB article che indica con certezza che i dati in una query UNION
non può essere aggiornato. C'è un modo per aggirare questo? Ad esempio:
SELECT * FROM MappingQuery1, MappingQuery2;
Questo lavoro funzionerà? Ricorda, tutti i campi sono allineati in tipo, dimensione e nome.
Esiste la possibilità di consolidare le singole tabelle in una tabella principale che ha la stessa struttura ad eccezione di un campo aggiuntivo per il nome della tabella da cui è stata generata ciascuna riga? – HansUp
SELECT * FROM MappingQuery1, MappingQuery2; ti darà una query cartesiana (un set di risultati che contiene tutte le possibili combinazioni di ogni riga) - non sarà modificabile. Sono d'accordo con HansUp. – Fionnuala
HansUp suggerisce che la struttura del database non è ottimale. Come diagnostico praticante (principalmente diagnostico i miei problemi, lo confesso), penso che sia molto probabile. Se lo è, questa sfida sarà seguita da molti altri. – Smandoli