ورود

View Full Version : سوال: trace trigger in sql



zman123456
چهارشنبه 16 اردیبهشت 1388, 23:01 عصر
با سلام
هر چی تو تاپیک ها گشتم چیزی پیدا نکردم.
برنامه ای که در یک جدول ورود اطلاعات می کنه و اون جدول دارای یک trigger هست که توش یک store procedure رو صدا می زنه.حالا یک جای کار ایراد داره.چطوری میتونم برنامه رو trace کنم تا بفهمم مشکل از کجاست؟

SYNDROME
پنج شنبه 17 اردیبهشت 1388, 07:45 صبح
VS 2005 نصب کنه و سپس SP را تست کنید و در زمانی که Tg فراخوانی شود trace وارد آن می شود.
موفق باشید

YMehraby
پنج شنبه 17 اردیبهشت 1388, 11:04 صبح
میتونی از SqlServer Profile هم استفاده کنی

zman123456
پنج شنبه 17 اردیبهشت 1388, 11:51 صبح
با عرض سلام
من دلفی کارما؟
خیلی بسته پاسخ دادید.البته از پاسختون SYNDROME عزیز متشکرم ولی هیچی دستگیرم نشد.

YMehraby جان با profiler کار کردم ولی چطوری میتونم خروجی یک مرحله که ورودی مرحله دیگه هست رو چک کنم؟

SYNDROME
جمعه 18 اردیبهشت 1388, 07:49 صبح
لینک زیر را نگاه کنید.
http://barnamenevis.org/forum/showthread.php?t=128380
باید visual Studio 2005 را نصب کنید.
موفق باشید

zman123456
یک شنبه 20 اردیبهشت 1388, 16:32 عصر
با سلام
به دلایل فنی امکان نصب vs 2005 رو ندارم.ولی با profiler تا جایی رفتم جلو:


FOR INSERT
AS
----------------------------------------------- declaration variable
declare @A int,
@B int,
@C int,
@D int
----------------------------------------------- set value in variable
select @A = A,@B = B, @C = C
, @D = SCOPE_IDENTITY() FROM Table
WHERE D = SCOPE_IDENTITY()
------------------------------------------------- Boolean expression Works
if (isnull(@A,0) =0)
begin
------------------------------------------------- Get Max A
SELECT @A =ISNULL(MAX(A),0)+1 FROM Table
where (Deleted = 0)
------------------------------------------------- Set A
update Table
set A = @A
where D = @D
end
------------------------------------------------- Boolean expression B
else
if (isnull(@B,0)=0)
begin
------------------------------------------------- Get Max B
SELECT @B =ISNULL(MAX(B),0)+1 FROM Table
where (A=@A)
and (Deleted = 0)
and (C = @C)
------------------------------------------------- Set B
update Table
set B = @B
where D =@D
end

این مشکلش چیه؟
از if رد میشه به update هم میرسه ولی هیچ رکوردی update نمیشه؟
فکر می کنم مشکل روی where باشه.
با تشکر از پاسخ به موقع شما دوست عزیز.