declare @string table(id int IDENTITY(1,1), tablename varchar(128), fieldName varchar(128))
declare @fields table(id int identity(1,1), fieldName varchar(128))
declare @id int,
@tableName varchar(128),
@fieldName varchar(128),
@updateSetFields varchar(1000)
insert into @string(tableName, fieldName)
select sysobjects.name, syscolumns.name
from sysobjects
inner join syscolumns on sysobjects.id=syscolumns.id
inner join systypes on syscolumns.xtype = systypes.xtype
where sysobjects.xtype = 'U' and systypes.name in ('varchar', 'nvarchar')
WHILE(EXISTS(select * from @String))
BEGIN
SET @updateSetFields = ''
select top 1 @id=id, @tableName=tableName, @fieldName=fieldName from @string
insert into @fields(fieldName) select fieldName from @string where tablename = @tableName
WHILE( EXISTS(select * from @fields))
BEGIN
SELECT top 1 @id=id, @fieldName=fieldName from @fields
SET @updateSetFields = ',' + @FieldName + '= RTRIM(LTRIM('+ @fieldName +')) '
delete @fields where id = @id
END
delete @string where tableName = @tableName
SET @updateSetFields = SUBSTRING(@updateSetFields, 2, LEN(@updateSetFields))
EXEC('UPDATE '+ @tableName + ' SET ' + @updateSetFields )
END