SQL Server: How to perform Rtrim on all varchar columns of a table

前端 未结 5 1987
眼角桃花
眼角桃花 2020-12-30 01:40

I have over 30 columns in my table (sql server 2008). Columns type are varchar(x). I know that in every column there is two extra spaces at the end of column value. How to u

5条回答
  •  無奈伤痛
    2020-12-30 01:47

    For a generic approach, you can use a script like this to generate the statement for you, for a given table (useful if you have many columns!):

    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
    

    That will just print the SQL statement out. You can either then copy + run the statement, or just EXECUTE(@SQL). This is untested, so just try it out on a test table first :)

提交回复
热议问题