Ikke helt forstået ! Mener du at du vil insert'e en række i en tabel, og opdatere en anden række i samme eller anden tabel i en atomar operation ? I så fald skal du lave en transaktion, f. eks.
BEGIN TRAN INSERT INTO TABA VALUES ('X') UPDATE TABB SET NAME = 'KNUD' WHERE ID = 47 COMMIT TRAN
Nej, det kan ikke lade sig gøre. Men hvis man er doven og har unik-index på de data der ikke må duplikeres, så kan du altid udføre en insert efterfuldt af en update. Dvs. at hvis insert fejler, så glem fejlen og fortsæt. En mere elegant løsning, men tåbelig hvis andre tabeller har fremmednøgler til den aktuelle tabel er, at starte med at slette data fra tabellen og derefter indsætte. Ingen fejl og ingen reel forskel på insert og update.
begin tran if exists ( select * from tbl_a where id = 12) update tbl_a set navn = 'Hans Hansen' where id = 12 else insert into tbl_a (id, navn) values (12, 'Hans Hansen') commit tran
Du kunne eventuelt pakke det pænt ind i en Stored Procedure.
Normalt plejer man at kommentere de venlige løsningsmetoder der er kommet på bordet. Måske ligger personerne inde med meget mere viden om netop dit problem, og ønsker måske lidt feedback fra dig. At tro, at alt bliver serveret på et sølvfad for 15point er måske lige utopisk nok!
Hygge til alle og god weekend.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.