在sql server中存储过程 [英] Store Procedure in sql server

查看:104
本文介绍了在sql server中存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在sqlserver中写了这个存储过程但是当我执行它时我得到以下错误:

消息217,级别16,状态1,过程RELAZIONE_TURNI_COMPONENTI,第37行

您已经超过了存储过程,函数,触发器或视图允许的最大嵌套级别数(32)。

有什么问题?

谢谢< br $>


Hi, i wrote this store procedure in sqlserver but when i execute it i obtain the following error:
"Message 217, Level 16, State 1, Procedure RELAZIONE_TURNI_COMPONENTI, line 37
You have exceeded the maximum number of nesting levels allowed (32) for stored procedures, functions, triggers, or views."
What's wrong?
Thanks

USE [PianificazioneAttivita]
GO
/****** Object:  StoredProcedure [dbo].[RELAZIONE_TURNI_COMPONENTI]    Script Date: 11/19/2014 09:53:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROC [dbo].[RELAZIONE_TURNI_COMPONENTI] (
    @idReparto bigint,
	@idTurnoLavoro bigint OUTPUT,
	@idRep bigint OUTPUT,
	@oraInizio time(7) OUTPUT,
	@oraFine time(7) OUTPUT,
	@idComponente bigint OUTPUT, 
	@nomeComponente varchar(50) OUTPUT,
	@giorniAnticipo int OUTPUT)
AS
BEGIN
 SET NOCOUNT ON;

DECLARE @turno bit;

IF ( EXISTS (SELECT * FROM [PianificazioneAttivita].[dbo].[Turni_Lavoro] WHERE Id_Reparto=@idReparto))
BEGIN SET @turno='TRUE' END
ELSE 
BEGIN  RETURN END

DECLARE Copy_Cursor CURSOR LOCAL FOR (SELECT RL.Id_TurniLavoro,Id_Reparto,OraInizio,OraFine,C.Id_Componenti,Nome,Giorni_anticipo
	FROM [PianificazioneAttivita].[dbo].[Regole_Lavoro] as RL
	JOIN [PianificazioneAttivita].[dbo].[Turni_Lavoro] as TL
	ON RL.Id_TurniLavoro=TL.Id_TurniLavoro and TL.Id_Reparto=@idReparto
	JOIN [PianificazioneAttivita].[dbo].[Turni] as T
	ON TL.Id_Turno=T.Id_Turno 
	JOIN [PianificazioneAttivita].[dbo].[Componenti] as C
	ON C.[Id_Componenti]=RL.Id_Componenti)


OPEN Copy_Cursor
FETCH NEXT FROM Copy_Cursor INTO @idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo

     WHILE @@FETCH_STATUS = 0
		BEGIN
			EXEC  dbo.RELAZIONE_TURNI_COMPONENTI @idReparto,@idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo
					print @idTurnoLavoro
					print @idRep
					print @oraInizio
					print @oraFine
					print @idComponente
					print @nomeComponente
					print @giorniAnticipo
		FETCH NEXT FROM Copy_Cursor INTO @idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo
		END

	CLOSE Copy_Cursor
	DEALLOCATE Copy_Cursor
END	

推荐答案

你的嵌套SP RELAZIONE_TURNI_COMPONENTI在内部执行另一个SP,函数等



查看这个



超出最大存储过程,函数,触发器或视图嵌套级别(限制32)



这可以帮到你



error:Maximum存储过程,函数,trigg呃,或超过查看嵌套级别(限制32)? [ ^ ]
does your nested SP RELAZIONE_TURNI_COMPONENTI internally executes another SP ,function etc

check this

Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)

This may help you

error:Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)?[^]


这篇关于在sql server中存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆