关于存储过程的问题,达人请进。。。。
set @a=1
declare @sql nvarchar(50)
set @sql= 'CREATE TABLE #temp4 (corp_name nvarchar(50) null, '
while @i> 0
begin
set @sql =@sql+ 'fee '+@a+ ' decimal(13,2) null,sumfee '+@a+ ' decimal(13,2) null '
set @a=@a+1
set @i=@i-1
end
set @sql=@sql+ ') '
可先假设@i=13
@a和@i都是int 型的
错误可能出在set @sql =@sql+ 'fee '+@a+ ' decimal(13,2) null,sumfee '+@a+ ' decimal(13,2) null '中
因为@sql是 nvarchar型的 @a是int 型的
我将他们相加 可能就出错了
各位达人帮忙看看,谢谢了
------解决方案--------------------declare @a int
declare @i int
set @i=13
set @a=1
declare @sql nvarchar(4000) --定义的长度太小了
set @sql= 'CREATE TABLE #temp4 (corp_name nvarchar(50) null, '
while @i> 0
begin
set @sql=@sql+ 'fee '+rtrim(@a)+ ' decimal(13,2) null,sumfee '+rtrim(@a)+ ' decimal(13,2) null '
set @a=@a+1
set @i=@i-1
end
set @sql=@sql+ ') '
print @sql