نمایش نتایج 1 تا 4 از 4

نام تاپیک: به دست اوردن اخرین ایدی در جدول

  1. #1

    Question به دست اوردن اخرین ایدی در جدول

    همیشه برای به دست اوردن ایدی اخرین رکورد استرس دارم که اشتباهی رخ بده هرچند تا حالا به مشکل نخوردم ولی در کل میخوام بدونم به
    @@IDENTITY و SCOPE_IDENTITY چقدر میشه اطمینان کرد یا گرفتن یک سلکت از مکس ایدی .
    مثلا من یک پراسیژر دارم که درج انجام میده و همزمان با درج یک تریگر اجرا میشود که در جدول دیگری درج انجام میده و درج در این جداول در لحظه ممکن مثلا 300 رکورد باشه !
    اگر اطلاعاتی در این مورد دارید ممنون میشم پست بگذارید

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: به دست اوردن اخرین ایدی در جدول

    ident_current('tblName')

  3. #3
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,143

    نقل قول: به دست اوردن اخرین ایدی در جدول

    به این لینک یه نگاه بنداز
    https://docs.microsoft.com/en-us/sql...ql-server-2017

    به پاراگرافی که با این جمله شروع میشه دقت کن
    Be cautious about using IDENT_CURRENT



  4. #4
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,143

    نقل قول: به دست اوردن اخرین ایدی در جدول

    البته خودمم دوست دارم دوستان نظراتشون رو بدند.

    مثلا توضیحی که در Documentationهای SQL اومده اینطور میگه
    DENT_CURRENT is not limited by scope and session

    هر برنامه ای که به SQL متصل میشه SQL یک Session براش میسازه که مخصوص همون Connection هستش. حالا توضیح بالا میگه براش Session مهم نیست و این شاید همون نگرانی شما باشه. چون ممکن بنابه دلایلی نتیجه Insert یکی کاربر دیگه رو به شما برگردونه. ولی SCOPE_IDENTITY و @@IDENTITY مقدار Insert شده در Sessionجاری رو برمیگردونه. این Session جاری همون Sessionی هستش که SQL برای اتصال برنامه شما تولید کرده. اما یک مورد هم داریم به نام Scope که باز هم کار رو دقیقتر میکنه که از بین سه گزینه بالا تنها Scope_Identity میتونه اون رو مد نظر قرار بده.

    به متن زیر از لینک زیر توجه کن
    https://docs.microsoft.com/en-us/sql...ql-server-2017


    For example, there are two tables, T1 and T2, and an INSERT trigger is defined on T1. When a row is inserted to T1, the trigger fires and inserts a row in T2. This scenario illustrates two scopes: the insert on T1, and the insert on T2 by the trigger.

    Assuming that both T1 and T2 have identity columns, @@IDENTITY and SCOPE_IDENTITY return different values at the end of an INSERT statement on T1. @@IDENTITY returns the last identity column value inserted across any scope in the current session. This is the value inserted in T2. SCOPE_IDENTITY() returns the IDENTITY value inserted in T1. This was the last insert that occurred in the same scope. The SCOPE_IDENTITY() function returns the null value if the function is invoked before any INSERT statements into an identity column occur in the scope.

    اگه دوستان که دانش دقیقتری دارند و این مسئله رو روشنتر کنند ممنون میشم

تاپیک های مشابه

  1. سوال: به دست آوردن فیلد id در جدول قبل از ثبت رکورد به وسیله سی شارپ
    نوشته شده توسط mbasirati در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 10 شهریور 1393, 20:32 عصر
  2. سوال: کد به دست آوردن آخرین کاربر وارد شده در سیستم به صورت Linq
    نوشته شده توسط davidrobert در بخش C#‎‎
    پاسخ: 9
    آخرین پست: دوشنبه 13 آبان 1392, 13:25 عصر
  3. سوال: به دست آوردن آخرين ارسال هاي انجمن | مشكل در اينكد
    نوشته شده توسط Roxeta در بخش PHP
    پاسخ: 4
    آخرین پست: چهارشنبه 11 فروردین 1389, 01:04 صبح
  4. به دست آوردن آخرين فاكتور درج شده در برنامه تحت شبكه
    نوشته شده توسط Developer Programmer در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 3
    آخرین پست: چهارشنبه 27 آبان 1388, 15:47 عصر
  5. به دست آوردن آخرین شماره ستون ID در MySQL؟؟؟؟
    نوشته شده توسط Aftabgardan-cc در بخش PHP
    پاسخ: 4
    آخرین پست: چهارشنبه 15 شهریور 1385, 01:18 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •