isnull动态处理所有的动态列 --【叶子】

isnull动态处理所有的动态列

-- =================================

-- Author:<Maco Wang>

-- CreateDate:2009-04-03 13:15:35

-- Description:<处理一个表的所有为空列,列是动态添加后的不固定列>

-- =================================

create procedure getnotnull

(

  @tablename varchar(100), --表名

  @Na varchar(20)          --替换null的字符

)

as

begin

    declare @sql varchar(8000)

    set @sql=''

    select @sql=@sql+',isnull(cast('+name+' as varchar),'+@Na+') as '+name

    from syscolumns where id=object_id(@tablename) order by colid

    set @sql=stuff(@sql,1,1,'')

    --print @sql

    exec('select '+@sql+' from '+@tablename) 

end

 

--测试数据

go

create table testtb(id int ,nn varchar(20))

insert into testtb

select null,null union all

select null,'a' union all

select 2,null

 

--处理非空列

go

exec getnotnull 'testtb','0'

go

drop table testtb

 

/*运行结果

id                             nn

------------------------------ ------------------------------

0                              0

0                              a

2                              0

*/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值