در جداولی که کیلد اصلیشون identity نمیدونم به چه دلیلی بصورت ناگهانی وقتی یک رکرود اضافه میکنم 1000 تا به عدد قبلی رکوردم اضافه میکنه.
نمیتونم برم ببینم برای هر کاربر چنین اتفاقی افتاده یا نه.برای اینکه کلا این مشکل پیش نیاد چه کاری باید کرد.
در جداولی که کیلد اصلیشون identity نمیدونم به چه دلیلی بصورت ناگهانی وقتی یک رکرود اضافه میکنم 1000 تا به عدد قبلی رکوردم اضافه میکنه.
نمیتونم برم ببینم برای هر کاربر چنین اتفاقی افتاده یا نه.برای اینکه کلا این مشکل پیش نیاد چه کاری باید کرد.
خب در حالت اتو نامبر شما گام افزایش رو دونه دونه افزایش بده . اگه اشتباه نکنم گزینه Identity Seed مقابل این خاصیت عدد 1 رو بزار درست میشه
من برای ساخت دیتابیس از code first در دات نت استفاده میکنم.مشکل Identity Seed نیست.
https://www.codeproject.com/Tips/668...-Value-Jump-Is
این یک مشکل که از sql 2012 به بعد هست به خاطر sequences هایی که اضافه کرده.
راه حل هم برای رفعش هست اماما چون در چند ین سیسم قرار پروژه کار کنه نمیدونم چطوری از پیش آمدنش جلوگیری کنم.
سلام
می تونید از trace flag 272 استفاده کنید تا برای هر مقدار Identity یک رکورد لاگ تولید بشه که روی Performance تاثیر منفی داره و راه دوم:
USE[master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTERPROCEDURE[dbo].[ResetOrderIdentityAfterRestart]
AS
BEGIN
beginTRAN
declare@id int =0
SELECT@id = MAX(id)FROM[DatabaseName].dbo.[TableName]
--print @id
DBCC CHECKIDENT ('[DatabaseName].dbo.[TableName]', reseed,@id)
Commit
END
و بعد به Startup اون رو اضافه کنید:
EXEC sp_procoption 'ResetOrderIdentityAfterRestart','startup','on';