Mainar
چهارشنبه 21 اردیبهشت 1390, 09:31 صبح
سلام
من ميخوام تو يه جدول insert كنم اما با اين خطا مواجه شدم
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)
نميدونم دليلش چيه.لطفا براي برطرف كردن اين خطا راهنماييم كنيد:گریه:
ممنون
حمیدرضاصادقیان
چهارشنبه 21 اردیبهشت 1390, 12:09 عصر
سلام.
دوست عزیز باید دستوری که این خطا رو ایجاد کرده اینجا بنویسید. چون ظاهرا داره یکی از دستورات شما به صورت تودرتو بیش از 32 مرحله اجرا میشه.
m_omrani
چهارشنبه 21 اردیبهشت 1390, 12:53 عصر
به نظرم یه SP دارین که یه جور بازگشت داره و به loop می افته.
Mainar
چهارشنبه 21 اردیبهشت 1390, 14:33 عصر
با اين sp عمل insert رو انجام ميدم:
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
------------------------------------------------------------
ALTERPROCEDURE [dbo].[spInsertCustomer]
@Code varchar(50),
@CustomerName varchar(50)=NULL,
@F_CustomerTypeID decimal(18, 4),
@F_CustomerStatusID decimal(18, 4),
@F_BuyTypeID decimal(18, 4),
@F_PersonID decimal(18, 4)=NULL,
@HamlCode varchar(50)=NULL,
@F_LocationID decimal(18, 4)=NULL,
@EtebarAccountNo varchar(23)=NULL,
@IsOutCity bit=NULL,
@Phone varchar(50)=NULL,
@Address varchar(50)=NULL,
@RegisterNo varchar(20)=NULL,
@F_LocationID_Nahieh decimal(18, 4)=NULL,
@HasTransport BIT= 1 ,
@HasAggrement BIT=1 ,
@OldCode varchar(50),
@Postcode varchar(10),
@SafPassword nvarchar(40)=NULL,
@SafOrderNo nvarchar(40)=NULL,
@F_Userid decimal(18,4)=NULL,
@F_CustomerMasraftypeid decimal(18,4)=NULL,
-- @F_LocationIdMahal Decimal(18,4)=null,
@Sabtdate char(10),@IschangeabilityBuytype bit=0,
@MellatPayerID varchar(20)=@OldCode,
@Sabtno char(20),
@Parvanehno char(30),
@F_CountryDivitionID Decimal(18,4),
@IsHard bit,
@BankPayerID char(11),
@IsOneToMany bit,
@ID decimal(18,4)Output
AS
DECLARE @Ret ASDecimal(18,4)
BEGINTRANSACTION
Exec spGetTableNextID 'Customer',@ID OUTPUT
INSERTINTO [dbo].[Customer] (
[ID],
[Code],
[CustomerName],
[F_CustomerTypeID],
[F_CustomerStatusID],
[F_BuyTypeID],
[F_PersonID],
[HamlCode],
[F_LocationID],
[EtebarAccountNo],
[IsOutCity],
[Phone],
[Address],
[HasTransport] ,
[HasAggrement] ,
[RegisterNo],
[Postcode],
[F_LocationID_Nahieh],
[safpassword],
[safOrderNo],
[OldCode],
[F_CustomerMasraftypeid],
[Sabtdate],
[MellatPayerID],
[Sabtno],
[parvanehno],
[F_CountryDivitionID],
[IschangeabilityBuytype],
[IsHard],
[IsOneToMany],
[BankPayerID],
[F_Userid])
VALUES(
@ID,
@Code,
@CustomerName,
@F_CustomerTypeID,
@F_CustomerStatusID,
@F_BuyTypeID,
@F_PersonID,
@HamlCode,
@F_LocationID,
@EtebarAccountNo,
@IsOutCity,
@Phone,
@Address,
@HasTransport ,
@HasAggrement ,
@RegisterNo,
@Postcode,
@F_LocationID_Nahieh,
@SafPassword,
@SafOrderNo,
@OldCode,
@F_CustomerMasraftypeid,
@Sabtdate,
@OldCode+cast(@ID aschar(20)),
@sabtno,
@parvanehno,--@MellatPayerID,
@F_CountryDivitionID,
@IschangeabilityBuytype,
@IsHard,
@IsOneToMany,
@BankPayerID,
@F_Userid)
IF@@ERROR= 0
BEGIN
COMMITTRANSACTION
/*EXEC SpinsertUserlogCustomer @F_Userid,@ID,@code,@CustomerName,@F_CustomertypeI D,@F_CustomerstatusID,@F_BuytypeID,@F_Personid,@Ha mlCode,
@F_LocationID , @EtebarAccountNo ,@IsOutCity ,@Phone,@Address ,@RegisterNo,@OldCode ,@HasTransport ,@HasAggrement ,@F_LocationID_Nahieh,201*/
SET @Ret = @ID
RETURN @Ret
END
ELSE
BEGIN
ROLLBACKTRANSACTION
RETURN @Ret
END
m_omrani
چهارشنبه 21 اردیبهشت 1390, 16:58 عصر
این قسمت رو چک کنین که قبل از insert داره فراخوانی می شه:
Exec spGetTableNextID 'Customer',@ID OUTPUT
خود دستور insert شما مشکلی نداره. شاید داخل این sp است که بازگشت (recursion) دارید یا داخلش چیزی که داره هی sp دیگه ای رو فراخوانی می کنه.
Mainar
پنج شنبه 22 اردیبهشت 1390, 09:42 صبح
در اين قسمت آخرين ركورد جدول را گرفته و يكي به اون اضافه ميكنه فكر نميكنم مشكل از اين قسمت باشه
محمد سلیم آبادی
پنج شنبه 22 اردیبهشت 1390, 20:16 عصر
بد نیست محتوای پروسیجر زیر هم ارسال کنید:
spGetTableNextID
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.