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

نام تاپیک: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

  1. #1
    کاربر دائمی آواتار majnun
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ایران
    سن
    35
    پست
    656

    گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    سلام دوستان

    من یه جدول دارم که میخوام آخرین رکوردی که درونش قرار گرفت رو با چندتا شرط بگیرم

    یه فیلد دارم که اتوماتیک شماره گذاری میشه

    ممنون میشم کمک کنید


    و سوال بعدیم اینه که چجوری میتونم دستوری بنویسم که بشه فقط 15 تا رکورد از جدول بخونم نه بیشتر

    ممنون

  2. #2

    نقل قول: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    ببینید این کد کمکتون میکنه

    CREATE TABLE [t_1](
    [id] [int] identity(1,1),
    [name] [varchar](30) NULL,
    [Age] [int] NULL
    )
    go

    insert t_1 values('ahmad',25),('Mohsen',30),('ali',18)
    go

    select top 1 * from t_1 order by id desc

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    تهران
    سن
    60
    پست
    293

    نقل قول: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    یک راه دیگر که در شرایطی خاص می توانید خیلی سریعتر از راه حل احمد آقا باشد، استفاده از تابع
    ident_current می باشد. ورودی این تابع اسم یک جدول است. خروجی اش ارزش آخرین identity می باشد که در آن جدول استفاده شد. با استفاده مجدد از کد احمد آقا:


    CREATE TABLE [t_1](
    [id] [int] identity(1,1),
    [name] [varchar](30) NULL,
    [Age] [int] NULL
    )
    go

    insert t_1 values('ahmad',25),('Mohsen',30),('ali',18)
    go

    select ident_current( 't_1' );


    ققط دو تا مسئله:

    1. این فقط تا زمانی صحیح کار می کند که سیستم خودش به طور اتوماتیک ارزش identity ها را تعیین کند.

    2. سرعت این کد در مقایسه با کد احمد آقا زمانی چشم گیر می شود که تعداد سطرهای جدول خیلی زیاد باشد. مثلا اگر شما چند میلیون سطر داشته باشید، زدن یک select روی ستون identity و بعد مرتب کردن آنها بر اساس ترتیب desc می تواند خیلی زمان ببرد. ولی استفاده از ident_current بلافاصله جواب می دهد.

  4. #4

    نقل قول: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    select top 1 * from t_1 order by id desc

    و
    select ident_current( 't_1' );


    روش اول که مرسوم ترین روش در این مرز و بوم می باشد و روش دوم که بسیار پرفرمنس رو می بره بالا . جناب صادقی نکته ظریف و جالبی بود .

    موفق باشید

  5. #5

    نقل قول: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    بهزاد جان نكته خيلي جالبي بود از راهنمايي خوب وحرفه ايت تشكر مي كنم

  6. #6

    نقل قول: گرفتن بزرگترین آی دی در جدول و تعداد محدود رکورد

    می شه از دستور زیر هم استفاده کرد :

    SELCT MAX(id) FROM TABLE

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

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