نقل قول: مشکل در طراحی جدول
کسی نیست بنه ما کمک کنه آیا؟
نقل قول: مشکل در طراحی جدول
سلام. فیلد 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