如何更新sql server中整个表中的空值列,而不使用列名? [英] how can we update null value columns in whole table in sql server, without using column name?

查看:209
本文介绍了如何更新sql server中整个表中的空值列,而不使用列名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



如何在不使用列名的情况下更新sql server中整个表中的空值列?



我想更新表中的所有空值列,我的表中有很多列,那么,我们可以在不使用列名的情况下更新所有空值列吗?



请帮帮我。



提前致谢。



Ankit Agarwal

软件工程师

Hello,

how can we update null value columns in whole table in sql server, without using column name?

I want to update all null value columns in a table, many columns in my table, So, can we update all null value columns without using column name?

Please help me.

Thanks in advance.

Ankit Agarwal
Software Engineer

推荐答案

因为你必须使用动态查询...

尝试一些像这样的东西......

在下面的示例中,我只更新数据类型为nvarchar的列......你可以这样做..

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


这篇关于如何更新sql server中整个表中的空值列,而不使用列名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆