ODBC Update

nussschale

Grünschnabel
Hallo alle zusammen,

ich hoffe Ihr könnt mir helfen.,
Ich möchte über eine ODBC Verbindung einen Wert in einer Spalte updaten.
Leider bekomme ich da immer den Fehler :

UPDATE OPENQUERY(linked_server, ''select strasse from ort where id="178"'') SET strasse="Astrasse"

Fehlermeldung:
Die Schlüsselspalteninformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen.

Es werden auch immer mehrere Einträge upgedatet und nicht nur der Eintrag mit id 178?

Was mache ich falsch? Ist mein ODBC Update richtig

Vielen Dank schon mal im voraus

Nussschale
 
Hallo Nussschale,

ich nehme an, das du den MS-SQLServer (2005) verwendest.

Der Fehler liegt wahrscheinlich an den ".

Richtig müsste es so sein:
Code:
UPDATE OPENQUERY(linked_server, 'select strasse from ort where id=178') SET strasse='Astrasse'
PS: Willkommen im Board kann man ja nicht sagen:), aber trotzedem: Glückwunsch zu deinem ersten Eintrag.:p
 
Hallo,

danke für Deine Antwort. Das hatte ich leider nicht dazu geschrieben. Ich nutze den SQL Server 2000. Dazu den MYSQL Server mit Treiber 3.51.

Es kann also leider nicht daran liegen.

Trotzdem danke!
Hast du vielleicht noch eine andere Idee

Tschüss Nussschale
 
Hallo Nussschale,

ist ID der Primärschlüssel?
Wieviele Datensätze mit ID 178 gibt es in Tabelle Ort?
Sonst poste doch bitte mal die Tabellenstuktur deiner Tabelle Ort.
 
Hallo Bernd,


wenn ich ein select auf diese Tabelee mache mit der entsprechenden ID, so erscheint auch nur der eine Datensatz den ich update möchte. Aber bei einem Update werden alle anderen Datensätze mit upgedatet.
Es ist zum heulen.

Die ID ist auch der Primärschlüssel der Tabelle.

Hast Du noch ne Idee

Tschüss Nussschale
 
Hallo alle zusammen,


UPDATE OPENQUERY(linked_server, ''select strasse from ort where id="178"'') SET strasse="Astrasse"


Vielen Dank schon mal im voraus

Nussschale

Hallo,

Ich kenne ODBC nicht und schon gar nicht den SQL Server, aber wäre ein Update eines Datensatzes mit einem PK nicht folgendermassen zu schreiben ?

Code:
UPDATE ort SET strasse ='ASTRASSE' WHERE ID=178


Gruss
 
Hallo

Danke für Deine Antwort. Du hast schon Recht mit Deiner Schreibweise im SQL, aber OPENQUERY sieht es leider etwas anders aus.

http://msdn.microsoft.com/de-de/library/ms188427.aspx

Tschüss Anja

OK, danke, ich lerne gern immer hinzu , obwohl die Change, dass ich mit MS-Produkten in Kontakt komme, eher klein ist :)

Gibt es im SQL Server keine Möglichkeit, eine Session zu tracen, so dass du feststellen kannst, welches Statement "wirklich" auf der DB abgelaufen ist ?


Gruss
 
Hallo Anja,

die Idee von dbwizard könntest du mal machen.

Starte den SQL-Profiler und schau mal was da für SQL's an die DB gesendet werden.
Diese SQL's kannst du dann auch mal direkt im Query Analyser ausführen um zu sehen, ob die Ergebnisse gleich sind.
 
Zurück