微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver获取某一张表中的所有列中的最大长度

比如 在我们导入sqlserver数据到oracle时  时常碰到列超出长度的问题 很是烦劳,报错是又不说明是那一列 所以我们只有自己去查

一列列的写sql语句麻烦死了 如下可以查询一张表中所有列的最大长度

 

go
declare @lengh int;
declare @i int;
declare @tableName varchar(20);
DECLARE @sqlString NVARCHAR(500)


declare   @a   table   (a   int,b   varchar(100)) ;
set @tableName='B2B_CONSTRACT';
set @lengh=(select count(*) from syscolumns where object_name(id)=@tableName);
insert into @a select  ROW_NUMBER() OVER (ORDER BY name),name from syscolumns where object_name(id)=@tableName;
set @i=1;
while @i<=@lengh
begin
   SET @sqlString = N'select max(len('+(select b from @a where a=@i)+')) as '+(select b from @a where a=@i)+' from '+@tableName;   exec (@sqlString);    set @i=@i+1;end;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐