سلام
شاید بعد از اینکه رکوردی رو در یک جدولی که فیلدی از نوع Identity داره اضافه کردین بخواهین که مقدار جدید اون فیلد رو بگیرین.سه راه برای این کار وجود داره و در اینجا تفاوت این راهها رو بررسی میکنیم:
در ابتدا باید دو مفهوم رو توضیح بدم: 1-جلسه یا Session و 2- حوزه دید یا Scope
Session: معرف کانکشنی است که دستور در آن اجرا میشود
Scope: معرف محلی است که دستور در آن وجود دارد
به عنوان مثال:دو دستوری که در یک روال ذخیره شده ذخیره میشوند در یک Scope قرار دارند و دو روال ذخیره شده ای که در یک کانکشن اجرا میشوند در یک Session قرار میگیرند.
با توجه به این مفاهیم :
@@IDENTITY : آخرین مقدار identity رو در session فعلی و در هر حوزه ای برمیگرداند.
scope_identity(): آخرین مقدار identity رو در session فعلی و در حوزه فعلی را برمیگرداند.
ident_current(): آخرین مقدار identity رو در هر session و در هر حوزه ای برمیگرداند.