日期:2014-05-17  浏览次数:20705 次

行转换列的列数目!!!!
行转换列的存储过程
ALTER PROCEDURE [dbo].[c_p_dj]
(
  @bj nvarchar(100)
)
AS
declare @sql nvarchar(1000)
select @sql=isnull(@sql+',','')
  +'max(case djplace when '''+djplace+''' then djcode else NULL end) as ['+djplace+']' 
from (select distinct djplace from c_v_dj1 where jcmodel=@bj) as a

set @sql='select jccode,'+@sql+' from c_v_dj1 where jcmodel='''+@bj+''' group by jccode'
exec(@sql)


列:djplace有30条以下的数据时,运行正确,超过30条数据时,运行存储过程就出错:消息 102,级别 15,状态 1,第 1 行
'cas' 附近有语法错误。

行转换列的列数目有限制么????

------解决方案--------------------
declare @sql nvarchar(1000) 
改为
declare @sql nvarchar(4000)