Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server:So führen Sie Rtrim für alle varchar-Spalten einer Tabelle aus

Für einen generischen Ansatz können Sie ein Skript wie dieses verwenden, um die Anweisung für Sie für eine bestimmte Tabelle zu generieren (nützlich, wenn Sie viele Spalten haben!):

DECLARE @SQL VARCHAR(MAX)
DECLARE @TableName NVARCHAR(128)
SET @TableName = 'YourTableName'

SELECT @SQL = COALESCE(@SQL + ',[', '[') + 
              COLUMN_NAME + ']=RTRIM([' + COLUMN_NAME + '])'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
    AND DATA_TYPE = 'varchar'

SET @SQL = 'UPDATE [' + @TableName + '] SET ' + @SQL
PRINT @SQL

Das druckt nur die SQL-Anweisung aus. Sie können die Anweisung dann entweder kopieren und ausführen oder einfach EXECUTE(@SQL) . Dies ist ungetestet, also probiere es einfach zuerst auf einem Testtisch aus :)