交叉制表--检查列的计数值和长度并加入行数据(9)

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

--除了需要证实列的计数值和名称长度,如果一切正常用户还需要填写#rownames表
--check column count
if (select  count(*) from #colnames)>1023
begin
  drop table #colnames
  raiserror  51004 'distinct column count exceeded max of 1023'
  return -1
end
--verify colnames do not exceed max length
if (select max(datalength(rtrim(colname))-1) from #colnames)>29
begin
  drop table #colnames
   raiserror 51050 'column data length exceeded max of 30'
  return -1
end
--if all is ok ,continue to add #rownames data
select @chvexec='insert #rownames select distinct '+
  case @introwtype
  when 1 then 'convert(varchar(255),' else ''
  end +rtrim(@chrrowhead)+
  case @introwtype
  when 1 then ')'
  else ''
  end +'from '+@chrsource
--print @chvexec
exec(@chvexec)