2009-08-06 6 views
1

Ich benutze den folgenden SQL-Befehl, um eine Spalte namens Adresse zu aktualisieren, der Wert enthält Zeilenvorschübe und ich möchte sie durch ein Semikolon ersetzen. In Query Analayzer sieht die Vorschau perfekt aus, aber wenn ich die Daten in Enterprise Manager (MS SQL 2000) überprüfe, sehe ich immer noch die Quadrate, also die Zeilenvorschübe. Mache ich die Änderung nicht? Wo gehe ich falsch? DankSQL-Befehl ändert Daten nicht

alt text http://i29.tinypic.com/2ih9pbd.png

+0

Dieser Beitrag verdeutlicht Ihre aktuelle Frage, aber vielleicht könnten Sie auch ein Anfänger Buch lesen wollen auf SQL. Nichts für ungut beabsichtigt, ich fand nur, dass es viel einfacher ist, die Grundlagen zu lernen, indem man ein Buch liest, anstatt Wissensbestandteile aus dem Netz zu schnorren. –

Antwort

11

Sie benötigen eine UPDATE Anweisung verwenden!

Die ersetzen in der SELECT ändert nur die Ausgabe nicht die Daten in der Tabelle.

BEGIN TRAN 
UPDATE Customers SET Address = REPLACE(Address, char(10) + char(13), ' ') .... etc 

--Check you like the change 
SELECT * FROM Customers 
--COMMIT --uncomment this to commit the changes. 
+1

Wenn es in Ordnung ist, kommentieren Sie den Teil --COMMIT und führen Sie ihn erneut aus. Abgesehen davon, gute Antwort, nur ein wenig Klärung. Sonst bekommen wir hier bei stackoverflow eine neue Frage. – Gertjan

-1

das Problem ist das, wenn die erste im Text char (10) und char (13) ersetzt mit '' und der nächsten ersetzt nichts

+1

Nicht wahr, Teile, bei denen CHAR (10) und CHAR (13) ** zusammen ** verwendet werden, werden durch ein Leerzeichen ersetzt, wenn ein CHAR (10) "alleine" steht, wird es zu einem;. Überprüfen Sie die Ergebnisse in seinem Ergebnisbereich. – Gertjan

1
UPDATE Customers 
    SET Address = REPLACE(.....) 
1

nerev tun abgeschlossen ersetzen, wenn Sie ausführen Ein Ersetzen innerhalb einer Auswahl nur die Daten "ausgewählt" wird geändert. Die Ersetzung erfolgt also kurz vor dem Anzeigen der Daten. Die Tabellendaten werden nicht von einer Auswahl berührt. Die Daten in der Spalte muss wie über eine Update-Anweisung aktualisiert werden:

UPDATE customers SET 
    Address = REPLACE(Address,CHAR(10)+CHAR(13), ' ') 
+1

Wenn nur Felder Methoden wie ersetzen hatten – pjp

+0

:) Guter Punkt. Ich werde meinen Kommentar bearbeiten. – Gertjan

2

Das wäre:

UPDATE customers SET Address = REPLACE(REPLACE(REPLACE(Address,CHAR(10)+CHAR(13),' '),CHAR(10),';'),CHAR(13),';') 
Verwandte Themen