1 ضمیمه
مشکل autonumber در sql2016
باسلام
دوستان من با sqlexpress2016 کار میکنم مشکلی که دارم این هست که کلید اصلی که در جدولها قرار دادم و identity اونها رو برابر yes گذاشتم و identity increment و identity seed رو هم برابر یک قرار دادم ولی شماره کلید اصلی که به صورت اتوماتیک وارد میشه به ترتیب و پشت سرهم نیست به نظر شما مشکل از کجاست؟
ضمیمه 144664
نقل قول: مشکل autonumber در sql2016
در نسخه 2012 بخاطر نوع مدیریت فیلدهای Identity این اتفاق میفته (بعد از هر بار ریست شدن سرویس SQL Server)
اگه سیستم سرور شما زیاد خاموش و روشن میشه میتونید با یکی از روشهای زیر اونو لغو کنید در غیر اینصورت بذارید همینطوری باشه.
1 - استفاده از Sequence
CREATE SEQUENCE YourSequenceName
AS INT -- OR BIGINT
START WITH 1
INCREMENT BY 1
MINVALUE 0
NO MAXVALUE
NO CACHE
در زمان اضافه کردن اطلاعات هم
insert into YourTable values
(NEXT VALUE FOR YourSequenceName, 'any value')
2 - ثبت پارامتر t272- در استارت آپ سرویس SQL Server
SQLServer configuration manager رو باز کنید
روی SQL Server 2012 راست کلیک کنید و Properties بزنید
از تب startup parameters در قسمت پارامتر مقدار t272- رو وارد کنید و دکمه Add رو بزنید.
سرویس SQL Server رو ریستارت کنید.
نقل قول: مشکل autonumber در sql2016
با سلام
حالا معنی این اقدام اینه که اتو نامبرهای حذف شده را ایجاد میکند و یا فقط آنها را ایندکس میکند؟ متشکرم
نقل قول: مشکل autonumber در sql2016
نقل قول:
نوشته شده توسط
khoshblagh
با سلام
حالا معنی این اقدام اینه که اتو نامبرهای حذف شده را ایجاد میکند و یا فقط آنها را ایندکس میکند؟ متشکرم
در نسخه 2012 برای مدیریت Identity از روش کش کردن استفاده شده (برای اهداف خاصی) وقتی سرویس sql server ریست میشه به ازا نوع فیلد یه مقداری پرش میکنه (به اندازه حجم کش)
برای tinyint = 10 , smallint = 100 , int = 1000 , bigint , numeric = 10000
روشهای بالا از این موضوع جلوگیری میکنه (پرش کردن)، نمیتونه مقدارهای ست شده قبلی رو تغییری بده و یا به موضوع ایندکس ارتباطی نداره.