For That u have to Use Dynamic Queries...
Try Some thing Like this...
In this below example am updating only columns of datatype nvarchar... u can do like this..
Create Table Temp (Item Nvarchar(100), Col1 Nvarchar(10),Col2 Nvarchar(40))
Insert into Temp
Select 'Item1',Null,'Test1' Union All
Select 'Item1',Null,Null Union All
Select 'Item1',Null,'Test1'Union All
Select 'Item1',Null,'Test1' Union All
Select 'Item1','Test1',Null
Declare @ColumnName Varchar(100),@Pos Int,@PrevPos Int=0,@UpdatedValue varchar(100),
@Query varchar(1000),@TableName Varchar(40)
Select @TableName= 'Temp',@UpdatedValue='''Test'''
While 1>0
Begin
Set @ColumnName=''
Select Top(1) @ColumnName = COLUMN_NAME,@Pos= ORDINAL_POSITION
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME=@TableName and IS_NULLABLE ='YES' and DATA_TYPE ='nvarchar'
and ORDINAL_POSITION > @PrevPos
If @ColumnName =''
Break;
Select @Query= 'Update ' + @TableName + ' Set ' + @ColumnName + ' = ' +
@UpdatedValue +' Where ' + @ColumnName +' is null' , @PrevPos=@Pos
Exec(@Query)
End
Select * from Temp
Drop Table Temp
Output:
Item Col1 Col2
Item1 Test Test1
Item1 Test Test
Item1 Test Test1
Item1 Test Test1
Item1 Test1 Test