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

نام تاپیک: گرفتن مقدار identity column پس از insert ؟

  1. #1

    گرفتن مقدار identity column پس از insert ؟

    سلام
    چطوری میشه پس از insert کردن مقدار فیلد identity column به دست آورد؟
    چون برنامه تو شبکه اجرا میشه نمیتونم مقدار فیلد آخرین رکورد رو بگیرم چون ممکنه همزمان چند رکرد درج بشه
    در ضمن سایر فیلد ها هم میتونن تکراری باشن

    فیلد های جدول:

    id : big int
    user : uniqueidentifier
    message: nvarchar(1000)
    در ضمن فیلد آی دی primary key هم هست
    کد هارو هم تو C#‎ مینویسم

  2. #2

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    از دستور
    select @@identity
    استفاده نمایید

  3. #3

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    نه دوست من این دستور مقدار آخرین id ایجاد شده رو برمیگردونه
    در اینصورت ممکنه مقدار بازگشتی درست نباشه

  4. #4

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    با یک تریگر مقداری که هر کاربر ایجاد میکنه را در یک جدول ذخیره کن.
    یعنی جدول 2 فیلد دارد فیلد اول نام کاربر و فیلد دوم مقدار رکوردی که کاربر ایجاد کرده است (با همون identity@@ ) اگر هم کاربر در جدول وجود داشته باشد مقدار قبلی را حذف کن و مقدار جدید را بریز

  5. #5

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    الان دارم از
    SCOPE_IDENTITY();

    استفاده میکنم این بهتر نیست؟

  6. #6

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    اینم خوب هست ولی توی محیط شبکه تست کردی ؟- جواب میده ؟

  7. #7

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    سلام
    فعلا که تو مراحل پیادسازی هستم مشکلی ازش ندیدم

  8. #8

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    سلام ...

    SQL تضمین می کنه که مقدار Scope_identity() آخرین Identity درج شده در فیلدی از نوع Identity هست در Session و Scope ی که این تابع فرا خوانی می شود ... identity@@ هم این مقدار رو در Session خودش بر می گردونه اما کاری با Scope نداره ... Ident_Curent همین مقدار رو بر می گردونه بدون در نظر گرفتن Session و Scope ...

    با توجه به این مسئله شما از Scope_Identity استفاده کنی مشکلی پیش نمیاد ...

  9. #9

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    با توجه به این مسئله شما از Scope_Identity استفاده کنی مشکلی پیش نمیاد ...
    سلام
    درسته به طور کامل تست کردم مشکلی پیش نمیاد

  10. #10
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    نقل قول نوشته شده توسط baktash.n81@gmail.com مشاهده تاپیک
    سلام ...

    SQL تضمین می کنه که مقدار Scope_identity() آخرین Identity درج شده در فیلدی از نوع Identity هست در Session و Scope ی که این تابع فرا خوانی می شود ... identity@@ هم این مقدار رو در Session خودش بر می گردونه اما کاری با Scope نداره ... Ident_Curent همین مقدار رو بر می گردونه بدون در نظر گرفتن Session و Scope ...

    با توجه به این مسئله شما از Scope_Identity استفاده کنی مشکلی پیش نمیاد ...
    ممنون از توضیح خوبتون. میشه لطفا بیشتر در مورد این توابع توضیح بدین و این که در اینجا Session و Scope به چه معناست و فرقشون چیه؟

  11. #11

    نقل قول: گرفتن مقدار identity column پس از insert ؟

    این مثال خود SQL هست : فرض کن 2 تا جدول داریم T1 و T2 که هردوتاشون فیلد Identity دارن ... و رو جدول T1 یک تریگر ست شده که در هنگام Insertیه رکورد تو جدول 2 Insert می کنه ... بعد از انجام دستور در SQL ...

    Scope_Identity : مقدار Identity جدول 1 رو بر می گردونه
    @@Identity : مقدار IDentity جدول 2 رو بر می گردونه ...

    در مورد Ident_Current هم که اسم جدول رو بهش می دی و او آخرین مقدار Insert شده رو بر می گردونه ...

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

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