Keine Cursor. Kopieren Sie die Ausgabe und fügen Sie sie ein. Funktioniert auch für SQL 2000, das nicht über Varchar (max) verfügt. Dies kann leicht erweitert werden, um eine GO-Zeile am Ende jedes UPDATE hinzuzufügen, falls gewünscht.
%Vor%Ihre Frage ist ein bisschen vage, aber ist es das wonach Sie suchen?
%Vor%Dadurch werden sowohl führende als auch nachfolgende Leerzeichen aus allen Werten in der Spalte 'Meine Spalte' in der Tabelle 'Meine Tabelle' entfernt.
- V schnell und schmutzig!
- Wenn dies Code generieren soll, der in einer einzigen Tabelle ausgeführt wird, führen Sie diesen Code mit der Textausgabe aus:
setze nocount auf
deklariere @table nvarchar (100) Wählen Sie @table = 'YourTableHere'
SELECT 'UPDATE' + @tabelle + 'SET' SELECT '[' + Spaltenname + '] =' + 'LTRIM (RTRIM ([' + Spaltenname + '])),' Von INFORMATION_SCHEMA.Columns WHERE Table_Name = @Tabelle AND Data_Type LIKE '% CHAR%'
- Ausführen als Textausgabe (Abfrage / Ergebnisse an ... Ergebnisse an Text - Kopieren und fügen Sie die Textausgabe (mit Ausnahme des letzten Kommas) in ein neues Abfragefenster ein und führen Sie sie aus.
OK, das war schnell und dreckig, aber ich bin durch ein aktuelles Projekt ausreichend motiviert, das "richtig" zu machen - und zwar auch ohne Cursor, aber ein wenig sql-Verkettungstrick. Verwendet jedoch dynamisches sql:
%Vor%Tags und Links sql-server tsql