2016-06-01 16 views
0

Ich möchte die Zeichenfolge von AttachmentCopyLoc Spalten von D:\IT\Public\FTX_RobotAlerts\336 zu V:\IT\Public\FTX_RobotAlerts\336 nur ändern hier ist D zu V, der verbleibende String ist der gleiche (ich nicht Ereignis möchte das ändern).SQL-Update für die Varchar-Spalte

Wie kann ich das tun?

Vielen Dank im Voraus für Ihre Hilfe.

enter image description here

+0

ich habe 12k Zeilen zu aktualisieren .. Bitte lassen Sie mich wissen, wenn Sie Fragen haben. – user6363065

+0

Welche Serversoftware verwenden Sie? String-Replacement-Funktionen können auf verschiedenen Plattformen unterschiedlich sein. –

+0

Können Sie bitte ein Tag mit der spezifischen RDBMS-Engine und der Syntax hinzufügen, in der Sie dies tun? Es gibt so viele. – amphetamachine

Antwort

0

Eine weitere Möglichkeit, Grund String Manipulation

UPDATE {table} 
SET AttachmentCopyLoc ='V' + substring(AttachmentCopyLoc,2,len(AttachmentCopyLoc)) 
where AttachmentCopyLoc like 'D%' 
2

Die genaue Syntax hängt von der Plattform, aber es wäre so etwas wie

UPDATE {table} 
SET AttachmentCopyLoc = REPLACE (AttachmentCopyLoc , 'D:' , 'V:') 
WHERE AttachmentCopyLoc LIKE 'D:%' 
+0

@D Stanley .. Danke für Ihre Hilfe, aber irgendwie gibt es mir Fehler wie "Msg 207, Ebene 16, Zustand 1, Zeile 3 Ungültige Spaltenname 'D:'." , nicht sicher, warum ... aber die nächste ans von Kabelload ist Arbeit für mich .. – user6363065

+0

@ user6363065 OK, und was ist das für ein Fehler? –

+0

Siehe mein Update - Ich verwendete die falsche Angebotskennung –

1

In SQL Server wäre, ich würde empfehlen mit stuff():

update t 
    set AttachmentCopyLoc = stuff(AttachmentCopyLoc, 1, 1, 'V') 
    where AttachmentCopyLoc like 'D:%'; 

Diese Version hat zwei Vorteile:

  1. Die Verwendung von STUFF() stellt sicher, dass nur das erste Vorkommen von 'D:' ersetzt wird. Zugegeben, es ist unwahrscheinlich, dass diese Teilkette mehr als einmal in der Spalte vorkommt, aber warum sollten Sie die Chance nutzen?
  2. Die Verwendung von LIKE ermöglicht die Verwendung eines Indexes auf AttachmentCopyLoc, wenn einer verfügbar ist und die Verwendung des Hte-Index geeignet ist.
0

Dies wird nur den ersten Buchstaben der Zeichenkette ändern:

update <tablename> 
set AttachmentCopyLoc = 'V'+substring(AttachmentCopyLoc,2,len(AttachmentCopyLoc)-1)