دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
سلام دیتابیس من Sql Server 2014 هست. کلید اصلی رو توی همه جداول خودم به صورت Identity تعریف کردم که با ثبت هر رکورد یکی اضافه میشه. ولی مشکلی که هست اینه که فیلد Identity توی بعضی از جداول من به صورت خودکار 1000 تا پرش پیدا میکنه.
از اونجایی که من از این فیلدهای آیدنتیتی به عنوان شماره سریال استفاده می کنم یکم ناجوره که یهو شماره سریالهام 1000 تا پرش پیدا کنه
برای رفع مشکل خودکار فیلد Identity در Sql Server باید چیکار کنم؟ و ضمنا چکار کنم که ان مشکل پیش نیاد ؟
دلیل پرش فیلد Identity در Sql Server یک مساله طبیعی هست. برای درک بهتر این موضوع توضیحات بیشتری رو ارایه می کنم براتون.
این مساله 2 دلیل می تونه داشته باشه که دلایل کامل رو میتونید توی این لینک مطالعه بفرمایید. البته من هم توضیحات خودم رو میدم.
اما برای رفع این مشکل میتونید توسط دستور زیر مقدار فیلد Identity رو ریست کنید.
DBCC CHECKIDENT (mytable, RESEED, 0)
البته این حالت رو بیشتر تو SQL Server 2012 و پس از هر بار restart شدن دیتابیس داریم، که همراه با یک پرش در فیلد identity اتفاق می افته و مقدار این پرش به نوع فیلد identity بستگی داره.
یعنی نوع فیلد integer باشه یک پرش 1000 تایی داره و چنانچه از نوع مثلا bigint باشه پرش 10000 تایی دارید
البته اگر این حالت براتون مشکل ایجاد میکنه، بهتره به جای فیلد identity از فیلد sequence استفاده کنی.
رفع مشکل پرش خودکار مقدار فیلد Identity در Sql Server
برای رفع این مشکل مراحل زیر رو به ترتیب انجام بدید :
- ابتدا از منوی start ویندوز Sql Server Configuration Manager رو باز کنید. دقت کنید که برای دسترسی به Sql Server Configuration Manager در ویندوز 8 به بالا وارد کنترل پنل بشید. گزینه Administrative Tools رو بزنید و سپس Computer Managment رو بزنید. حالا باید طبق تصویر زیر به سرویس های Sql Server دسترسی داشته باشید.
- حالا از پنجره سمت چپ یا سمت راست گزینه Sql Server Services رو انتخاب کنید تا لیست Service های نصب شده Sql Server روی سیستم شما یا روی سرور رو بهتون نمایش بده.
- حالا روی گزینه Sql Server طبق تصویر دوبار کلیک کنید تا تنظیمات سرویس sql Server شما باز شود. به سربرگ startup Parameters مراجعه کنید و در تکست باکس مشخص شده عبارت -t272 رو وارد کنید و Ok کنید
بعد از انجام این مراحل مشکل پرش ناگهانی Identity در sql Server مرتفع میشه.
موفق باشید
سلام میتونی یه بار identity رو no کنی بعد ذخیره کنی بعدش yes کنی و ذخیره ش کنی تا از جایی که آخرین id ثبت شده ادامه بده.
این کد رو در یک کویری در دیتابیس اجرا کنید
ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )
- دلیل افزایش حجم Database بعد از ری استور در هاست Plesk