存储过程变量名太长,高手指点
以下是我执行的过程(模仿邹建兄合并多个数据库的例子,先合并多个数据表,再将竖表变成横表),中间那段语句加长就不行了,把@sql打出来一看,已经被截断了,如何处理望高手指点。
CREATE PROC P_SCM_XMNR_H AS
declare @sql char(8000)
set @sql = ''
select @sql = @sql + '
select 编号=fld_xysbh
,产品名称=max(case when fld_zh=1 and fld_th=1 and fld_kh=0 and fld_xh=1 then fld_xmnr else '''' end)
,产品型号=max(case when fld_zh=1 and fld_th=2 and fld_kh=0 and fld_xh=1 then fld_xmnr else '''' end)
,功能=max(case when fld_zh=1 and fld_th=4 and fld_kh=0 and fld_xh=1 then fld_xmnr else '''' end)
。。。。。。。。。。。。。。。。。。。。。
from xys.dbo.'
+ name + ' group by fld_xysbh' + ' union all '
from xys.dbo.sysobjects where xtype='u' and name like 'tab[_]xmnr%'
if len(@sql) > 10
begin
set @sql = left(@sql, len(@sql) - 10)
exec(@sql)
end
print @sql
GO