sql >> Database >  >> RDS >> Sqlserver

SQL Server:Rtrim uitvoeren op alle varchar-kolommen van een tabel

Voor een generieke benadering kun je een script als dit gebruiken om de verklaring voor je te genereren, voor een bepaalde tabel (handig als je veel kolommen hebt!):

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

Dat zal gewoon de SQL-instructie afdrukken. U kunt dan ofwel de instructie kopiëren + uitvoeren, of gewoon EXECUTE(@SQL) . Dit is niet getest, dus probeer het eerst op een testtafel :)



  1. Gegevens ophalen via mysql met functie en gebruik in het selectievakje?

  2. Meerdere INSERTS in één tabel en veel tot veel tafels

  3. Welke instellingen bieden de standaard datum/tijd-indeling van SQL Server?

  4. Beperking toevoegen om kolom uniek te maken per groep rijen