Vraag & Antwoord

Programmeren

T-SQL; verwijder rijen in een bestaande cursor

2 antwoorden
  • Hoi allen, Ik heb de volgende tabel: [code:1:62485a220b] Naam Naam2 bert burger burger bert janssen piet piet janssen [/code:1:62485a220b] Ik wil hier 'gespiegelde' duplicates verwijderen door gebruik te maken van de volgende cursor: [code:1:62485a220b] DECLARE @Naam as varchar(50) DECLARE @Naam2 as varchar(50) DECLARE c1 CURSOR FOR select naam, naam2 from #tmp for update OPEN c1 FETCH NEXT FROM c1 into @Naam, @naam2 WHILE @@FETCH_STATUS = 0 BEGIN delete from #tmp where (@naam = naam2 and @naam2 = naam) END fetch next from c1 into @naam, @naam2 CLOSE c1 DEALLOCATE c1 [/code:1:62485a220b] Echter wordt hier mijn hele #tmp tabel verwijderd. Weet iemand hoe ik de cursur zo kan instellen dat het "delete from" statement effect heeft op de fetch van de cursor? Bedankt!
  • Dat kan je toch eenvoudiger oplossen? Door de tabel aan zichzelf te joinen met als voorwaarde dat de waardes gespiegeld zijn, de plekken waar je een match hebt, die moeten weg. Dus zoiets DELETE FROM tabel WHERE id in ( SELECT t2.id FROM tabel1 t1 INNER JOIN tabel 2 t2 ON t2.naam1 = t2.naam2 AND t2.naam2 = t1.naam1 ) Ik ga er nu vanuit dat je een id veld hebt, heb je dat niet dan kan het ook maar moet je het iets anders aanpakken.. Gaat dat lukken?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.