读书人

话语被终止。完成执行语句前已用完最大

发布时间: 2013-04-05 10:24:33 作者: rapoo

语句被终止。完成执行语句前已用完最大递归 100。 警告: 聚合或其他 SET 操作消除
如下存储过程 ,当执行时候,数据量只有几行的时候可以,几十行的时候就报错了,求高手指正,谢谢。
ALTER PROCEDURE [dbo].[cpzaocx]
@bs int
AS
BEGIN

with ctetemp as
(

select isnull(a.riqi,b.riqi) as riqi,isnull(jin,0) as jin,isnull(xiao,0) as xiao,
isnull(jin,0)-isnull(xiao,0) as cun
from
(
select CONVERT(char(10),pickuptime ,121) as riqi,sum(shul) as jin
from fitjujube
group by CONVERT(char(10),pickuptime ,121) ) a
full join
(

select CONVERT(char(10), fahuoriqi ,121) as riqi,
sum(b.shuliang) as xiao
from dbo.orderform a left join dbo.orderformchanpin b
on a.orderbianhao=b.orderbianhao where a.fahuoriqi is not null
group by CONVERT(char(10), fahuoriqi ,121)
) b on a.riqi=b.riqi)
--select * from ctetemp


, cte AS
(
SELECT ROW_NUMBER()OVER(ORDER BY riqi )id,riqi ,jin ,xiao ,jin-xiao AS cun
FROM ctetemp
),
test AS
(
SELECT * FROM cte WHERE id=1
UNION ALL
SELECT b.id,b.riqi,b.jin,b.xiao,a.cun+b.cun
FROM test a INNER JOIN cte b ON a.id+1=b.id
)
SELECT a.id as id,a.riqi as 日期,a.jin as 进,a.xiao as 销,a.cun as 存,b.notes as 备注 FROM test a
left join ( select CONVERT(char(10),riqi ,121) as riqi,notes,pingzhong from dbo.kucunnote b where b.leibie='成品' and (pingzhong='' or pingzhong is null)) b on a.riqi=b.riqi
order by a.id desc

END

[解决办法]

引用:
引用:
或者:服务器范围的默认值为 100。如果指定 0,则没有限制。每一个语句只能指定一个 MAXRECURSION 值使用类似的语句:

SQL code?12345678910111213141516171819USE AdventureWorks2008R2;GO--Creates an infinite loopWITH cte (Emplo……
这是服务器默认行为,可以修改的

读书人网 >SQL Server

热点推荐