snap een verwijderquery niet...

Status
Niet open voor verdere reacties.

Sjoef

Gebruiker
Lid geworden
12 mei 2009
Berichten
270
Hallo, ik heb in een database 2 tabellen. Tabel A en B. In tabel B staan klantnummers die uit tabel A verwijderd moeten worden. Nu is dit niet de eerste verwijderquery die ik maak maar in dit geval blijf ik de melding krijgen " De records zijn niet verwijderd. De gegevens zijn alleen lezen." Ik snap er niets meer van. Wie kan mij helpen?

JoZ
 
Als er een afhankelijkheid is tussen tabelA en tabelB dan kan dat inderdaad voorkomen. Je hebt dan een één-op-veel relatie tussen A en B gelegd, of andersom. In die relatie kun je aangeven of records trapsgewijs mogen worden verwijderd. Als je die optie aanzet, dan zou het wel moeten lukken.
 
Michel, het zijn losse csv files waar ik tijdelijk 2 tabellen van maak om ze te bewerken. Een 1 op veel relatie en trapsgewijs verwijderen gaat dus niet..... Heb je nog een suggestie?

JoZ
 
Bedoel je dat je de csv bestanden als koppeling in je db hebt? Of heb je de gegevens geïmporteerd als een aparte (tjdelijke) tabel?
 
Michel, dat laatste. Dus beide csv files geimporteerd als tabel. Vandaar tabel A en B.

JoZ
 
Dus je hebt aparte tabellen, die niet gekoppeld zijn, en waaruit je records wilt verwijderen met een verwijderquery. Dan lijkt het er op alsof de tabel nog ergens open staat, en dat er records gelockt zijn. Is dat mogelijk?
 
Ik ga straks even inloggen en proberen. (maar volgens mij staat er geen tabel open)....Je hoort van me.......
 
Michel, er is op het moment van "draaien" geen tabel open. Ik heb nu echt alle opties geprobeert maar krijg het niet voor elkaar. Wat moet nou de syntax zijn?
 
Welke heb je gebruikt? Het is meestal al genoeg om DELETE * FROM [Tabel] WHERE [ID]=12 o.i.d. te gebruiken.
 
Ik heb er vele geprobeert. Maar het moet iets zijn van:

DELETE A.*
FROM A RIGHT JOIN B ON A.NUMMER = B.NUMMER;


pffff terwijl ik dit type bedenk ik me dat ik de DISTINCTROW ben vergeten.....even proberen...... *schaamrood* (je hoeft geen ***** te zijn om in een boom te hangen....en ik ben een enorme *****!)

Michel, bedankt voor je reacties en je hulp.
 
Je gebruikt een Right join. Dat gaat volgens mij inderdaad niet werken; je kunt alleen een normale join gebruiken.
 
snap ik het nog niet want het werkt als een speer.......
 
Als het werkt, werkt het :D Zal wel door de Distinct komen. Zelf doe ik zoiets met een subquery; vind ik een stuk makkelijker.
 
Zo'n query ziet er dan zo uit:

Code:
DELETE *, Id FROM tTestnawhistorie
WHERE (Id Not In (select ID from [tTestnaw]));
 
Het is niet nodig om na DELETE expliciet te verwijzen naar een kolom:

DELETE
FROM tTestnawhistorie
WHERE Id Not In (select ID from [tTestnaw]);

Tardis
 
Klopt, maar als je een query aan het maken bent krijg je die velden er gratis bij; en je wilt een code toch intypen in het ontwerpscherm. Vandaar mijn voorbeeld met een veldje erbij. Niet dat het uitmaakt in het draaien.....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan