# پایگاه‌های داده > SQL Server > Management Studio >  مشکل در طراحی جدول

## Meysam136611

سلام به همه دوستان.من یه مشکلی تو ساخت جدول تو اس کیو ال دارم و اونم اینه که فیلد کلیدی که تو یه جدول تعیین میکنم و خاصیت Identityاون رو Trueمیکنم و تعیین میکنم که آی دی ها از یک شروع بشن و یکی یکی به مقدارشون اضافه بشه این عمل صورت نمیگیره به این صورت که در ثبت اول چند رکورد اول آی  دی هاشون درست داده میشه ولی در ثبتهای بعدی آی دی ها از 1000 یا 2000 شروع میشن.من میخوام آی دی ها دنباله همون آی دی های اول باشن و پرش نداشته باشن.لطفا کمکم کنید.
ممنون

----------


## Meysam136611

کسی نیست بنه ما کمک کنه آیا؟

----------


## Davidd

سلام. فیلد identity لزوما یکی یکی زیاد نمیشه و در بعضی موارد بسته به ورژن SQL Server  از 1000 یا 10000 ... شروع میشه. با دستور DBCC CHECKIDENT('TableName', RESEED, 0) میشه از اینکار جلوگیری کرد اما در صورتی که مثلا یکی از رکوردهای میانی حذف شده باشه، کلید رکورد جدید برابر ماکسیمم به اضافه یک نمیشه بلکه برابر کلید رکورد حذف شده میشه.
 اگه حتما باید فیلد کلید به صورت پشت سر هم باشند بهتره از فیلد int ساده استفاده کنی و خودت قبل از Insert مقدار ماکسیمم کلید بدست بیاری و یکی اضافه کنی.

----------


## سید مسعود موحد

آیا شما از mirroring یا Replicate استفاده میکنید اگر از این ابزار استفاده میکند در زمان Roll over این اتفاق می افتد 

راه حل 
با جای گذاری قسمت های مربوطه از قبیل نام فیلد و نام جدول و نام دیتابیس این پروسیجر رو در دیتابیس master ذخیره کنند و یکبار ریستارت کنن و بعد از ان به صورتی که خودشان تعیین کرده اند انجام خواهد شد. 


USE [master] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
----=======درست کردن پروسیجر در دیتابیس مستر برای شناسایی اخرین ای دی ایدنتیتی ==============
 Create PROCEDURE [dbo].[ResetOrderIdentityAfterRestart] 
AS 
BEGIN 
begin TRAN 
declare @id int = 0
 SELECT @id = MAX(id) 
FROM [DatabaseName].dbo.[TableName] 
--print @id 
DBCC CHECKIDENT ('[DatabaseName].dbo.[TableName]', reseed, @id) 
Commit 
END



----========اجرا بعد از هر بار راهندازی به صورت اتوماتیک =========

EXEC sp_procoption 'ResetOrderIdentityAfterRestart', 'startup', 'on';

برای اطلاعات بیشتر به لینک های زیر مراجعه کنید:
http://beyamooz.com/forum/threads/10...8%B1-SQLSERVER


http://stackoverflow.com/questions/1...erver-database

----------

