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

نام تاپیک: نیازمند تابع هایی برای انجام عملیات بر روی identity

  1. #1

    نیازمند تابع هایی برای انجام عملیات بر روی identity

    من می خوام برخی عملیات رو رویه یه فیلد که از نوع identity auto number است انجام بدم. برای هرکدام اگر تابع های آماده ای هست لطفا بگید اگر نیست که روش پیشنهادی نوشتن تابع رو بگید تا تابعش رو بنویسم.

    1- از بین بردن فضاهای خالی:
    مثلا identity ما به عدد 9000 رسیده باشه ولی از عدد 10 تا 80 و 150 تا 300 خالی باشه (identity وجود نداشته باشه) حالا تابعی میخوام که فیلدها رو بسمت بالا شیفت بده (جاهای خالی رو پر کنه)

    2- جابجایی مقدار دو فیلد:
    مثلا مقدار identity فیلد 8 رو با 12 بخوام تغییر بدم.

    البته این دو کار رو با نوشتن تابع ساده میشه انجام داد ولی میخوام ببینم خود sql تابعی براشون داره یا نه که اگر نداره براشون بنویسم.
    ممنون

  2. #2
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: نیازمند تابع هایی برای انجام عملیات بر روی identity

    هر دوتا کارتان اساس اشتباه هست

  3. #3

    نقل قول: نیازمند تابع هایی برای انجام عملیات بر روی identity

    سلام ...

    اگه می خوای Shift بدی اطلاعات رو یکی از روش ها اینه که اطلاعات رو بریزی تو یه table دیگه بعد این Table رو Trancate کنی که Identity از 1 شروع بشه بعد اطلاعات رو برگردونی ...
    برای تعویض مقادیر همه ... که خودت گفتی ...

    اما با این دوستمون موافقم ... کلا این کار اشتباه ...

  4. #4
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: نیازمند تابع هایی برای انجام عملیات بر روی identity

    سلام،
    با اجرای Query زیر می توانید شماره Id های حذف شده را روی آن جدول پیدا کنید:
    WITH Missing (missnum, maxid)
    AS
    (
    SELECT 1 AS missnum, (select max(YourColumn) from YourTB)
    UNION ALL
    SELECT missnum + 1, maxid FROM Missing
    WHERE missnum < maxid
    )
    SELECT missnum
    FROM Missing
    LEFT OUTER JOIN YourTB tt on tt.YourColumn = Missing.missnum
    WHERE tt.YourColumn is NULL
    OPTION (MAXRECURSION 0)

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

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