Problem mit SQL UPDATE Abfrage

daywalkertp

Erfahrenes Mitglied
Meine Abfrage Sieht so aus:
Code:
UPDATE Adressen SET Firmenzusatz = 'EDV', Anrede = 'Herr', Nachname = 'Merkel', Straße = NULL, PLZ = '72108', Ort = 'Rottenburg', Tel_Nummer = '07472 - 8242', Fax_Nummer = NULL, Handy_Nummer = '0174 - 9893708', Privat = NULL, Anmerkung = NULL, [e-Mail] = NULL WHERE Index LIKE '19118'
Dabei erhalte ich volgenden Fehler:
Code:
Microsoft OLE DB Provider for ODBC Drivers- Fehler '80040e10' 

[Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

...ich verstehe einfach nicht was er hat. Meine Datenbankstruktur sieht so aus:
Code:
Index        |AutoWert
Firma        |Zahl
Firmenzusatz |Text
Anrede       |Text
Nachname     |Text
Straße       |Text
PLZ          |Text
Ort          |Text
Tel_Nummer   |Text
Fax_Nummer   |Text
Handy        |Text
Privat       |Text
e-Mail       |Text
Anmerkung    |Memo

An was kann es liegen?
 
versuch mal bei e-Mail ein e_Mail drausszumachen. kommt zwar auf den DB typ an aber versuch ists wert.
 
hallo zusammen ich hab da auch ein kleines problem.

ich habe in einer Adress-Tabelle Daten von einer CD runter gezogen und eingespielt in SQL.

Da ja SQL " als Text-Anfang -Ende erkennt musste ich die " ändern in +

jetzt will ich gerne in der SQL Tabelle gerne wieder die " haben. damit wieder steht:

Arbeitsgruppe "unter uns"

und nicht wie aktuell:

Arbeitsgruppe +unter uns+

ich bekomme bei folgender abgrage:
Code:
UPDATE Adressen SET [Name] = '"'
WHERE [Name] = '+'

folgende fehlermeldung

Server: Nachr.-Nr. 306, Schweregrad 16, Status 1, Zeile 1
Die Datentypen text, ntext und image können nur mithilfe des Operators IS NULL oder LIKE verglichen oder sortiert werden.

die Spalte "Name" ist logischerweisse als TXT hinterlegt.

und bei
Code:
UPDATE Adressen SET [Name] like '"'
WHERE [Name] like '+'

erhalte ich

Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Zeile 1
Falsche Syntax in der Nähe des like-Schlüsselwortes.
 
ich habe noch einen fehler

wie kann ich nur ein zeichen in der feld ändern so das der rest des textes erhalten bleib?
 
Ich weiß zwar derzeit nicht, mit welchem Datenbanksystem du arbeitest, aber MySQL z.B. hat dafür die üblichen Stringfunktionen (Ersetzen, Teilstring etc.), die man dafür einsetzen kann.
SQL:
UPDATE tabelle SET spalte = REPLACE('abc','ABC',spalte) WHERE id=1;

EDIT: richtige Argumentreihenfolge für REPLACE: spalte,'abc','ABC'
 
Zuletzt bearbeitet:
ich arbeite mit ms sql

und ich bin recht neu - daher verzei mir bitte das ich mit deiner antwort noch nicht viel anfangen kann
 
Wie ich gerade gesehen habe, ist meine Argumentreihenfolge für REPLACE falsch --
es müsste heißen
SQL:
REPLACE(spalte,'suchstring','ersatzstring')

Ein weiteres Thema dazu kanst du z.B. hier anlesen. Oder einfach mal nach 'update' und 'replace' zusammen suchen...

REPLACE ersetzt im ersten Argument das zweite Argument durch das dritte (wenn vorhanden).
 
ok danke

nur so für mein verständniss

wenn ich jetzt eine spalte mit mehreren ansprechpartner habe bei denen auch die anrede mit dabei ist kann ich zum beispiel die ersten 4 zeichen mit dem replace ändern

ich versuche mal den sql code zu kreiren

Code:
update tabelle
set field = replace (field, ausdruck, neuer_ausdruck)
left([feldname];5)
where [feldname] like 'Herr %'
 
ich hab es zwar geschaft das MS SQL die datensätze ausliest aber er aktualisiert sie nicht

Code:
select zwischen.geschäftsführer from zwischen
where Geschäftsführer like'Herr%' and not Geschäftsführer like '% Herr%'
select replace ('Herr ','Herr ','')

auszug aus der spalte

Herr Egon Haydn; Frau Hildegard Schopper
Herr Ernst Bachleitner; Frau Vera Bachleitner-Tandl; Frau Brigitta Haratzmüller
Herr Peter Lukschal; Frau Anna Lukschal
 

Neue Beiträge

Zurück