PDA

View Full Version : عدم امکان دریافت IDENTITY به خاطر تریگر After Insert



javadsaberifar
شنبه 20 مهر 1392, 08:45 صبح
سلام به همه مهندسین محترم
من در یک Table یک تریگر After Insert دارم که اگر یک حالت خاص داشته باشد در یک جدول دیگر یک رکورد Insert می کند. من پس از Insert در جدول اصلی به @@IDENTITY آن نیاز دارم اما تریگر باعث می شود که مقدار @@IDENTITY تغییر کند و نامعتبر شود. تعداد Insert ها در جدول اصلی زیاد است و نمی توانم ID آخرین رکورد را استفاده کنم.
این مشکل را چگونه حل کنم.

fakhravari
چهارشنبه 24 مهر 1392, 13:59 عصر
دوستان راهنمایی می کنند.

plus
چهارشنبه 24 مهر 1392, 14:17 عصر
نمیتونید عمل Insert در جدول اصلی و عملی که نیاز به Identity دارید رو در یک SP بگذارین و بجای Identity@@ از SCOPE_IDENTITY استفاده کنید؟

fakhravari
چهارشنبه 24 مهر 1392, 18:15 عصر
فرقی فکر کنم نداره. خروجی اینا یکیست:متفکر:

plus
چهارشنبه 24 مهر 1392, 20:51 عصر
فرقی فکر کنم نداره. خروجی اینا یکیست:متفکر:
خروجی IDENTITY@@ با SCOPE_IDENTITY فرق میکنه.

fakhravari
چهارشنبه 24 مهر 1392, 22:02 عصر
:تشویق: awarin
تست کردم درست شد.
SET @id = @@IDENTITY -- خروجی تعداد عملیات ها
SET @id = SCOPE_IDENTITY() -- خروجی کلید

javadsaberifar
پنج شنبه 25 مهر 1392, 09:40 صبح
ممنون از دوستان ولی یه سئوال همانطور که گفتم تعداد Insertها زیاده اگه از این SCOPE_IDENTITY() استفاده کنم امکان نداره تداخلی ایجاد کنه؟

fakhravari
جمعه 26 مهر 1392, 16:56 عصر
http://forum.nikamooz.com/showthread.php?t=317