ايران ويج

نسخه‌ی کامل: مشکل افزایش اتوماتیک مقدار یک فیلد در هر سطر(auto number)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
:0-0:[/font]من یه پایگاه داده ساده SQL Server دارم که نوع داده ستون کلید اصلی آن int است و به صورت اتوماتیک با افزایش سطر جدید یک واحد به id آن اضافه میشود (auto number) است . ولی نمی دانم چرا وقتی سطری را پاک میکنم شماره id آن سطر ، دیگر قابل دسترسی نیست . یعنی دیگر سطری با آن id ایجاد نمیشود . چطور میتونم این مشکل را حل کنم؟ ممنون میشم کمکم کنید.
سلام.
معمولا این اتفاق تو دیتابیس اکسس می افته و چون خود فایل اکسس برای هر جدول یه ایندکس داره (داخل خودش) به خاطر همین امکان برگشت به عقب و ایجاد دوباره یه شماره وجود نداره.
می تونی یه کپی از جدول بگیری و موقع تست فقط ساختار (Structure) رو انتخاب کنی تا ساختار جدولت کپی بشه بعد جدولت رو باز و کل محتویاتش رو انتخاب کن و همه رو کپی کن. بعدش برو اون جدول جدیدی که ساختی رو باز کن و اطلاعات رو توش پیست کن تا همه از شماره 1 ایندکس بخورن و شماره های خالی هم جایگزین بشه.
درسته تو اکسس هم به این مشکل برخورد کرده بودم. ولی یادم رفت بگم منظور من sql server هستش. ضمناً درسته که من مبتدی هستم و لی اطمینان دارم که راه بسیار ساده و پیش پا افتاده ای داره . راه حل شما یعنی لقمه را دور سر چرخوندن!!!
با این حال خیلی مرسی
بابا یکی یکی جواب بدید بتونم یاد داشت کنم Happy
دوست عزیز شما میتوانید با کد زیر عدد indetity خود را مرتب کنید. یعنی ابتدا دستور زیر را اجرا نمایید بعد عدد بعدی که باید در جدول قرار بگیره رو تنظیم کنید من کد مربوط به هر دو قسمت رو براتون میذارم.

SET IDENTITY_INSERT products ON
GO

ابتدا با کد بالا تنظیم میکنید که بتوان مقدار indentity رو عوض کرد .product نام جدول مربوطه هست.

INSERT INTO products (id, product) VALUES(3, 'garden shovel').
GO

با این کد هم اومدم عددی که باید برای identity تنظیم بشه قرار دادم
یا DBCC CHECkIDENT('myTableName',Reseed,0) اینو تو کوئری آنالایزر یه بار اجرا کن قبل از نشان دادن اطلاعات به کاربر
کوئری آنالایزر کجای SQL SERVER 2005 (ENTERPRIZE EDITION هست؟ IDENTITY_INSERT همون اسم فیلد مورد بحثه؟ من به اسکیو ال سرور زیاد وارد نیستم. لطفا یه ذره سطح پایین تر جواب بدید. میخوام کاری کنم که هر بار که یک سطر دیلیت میشه خود به خود بره همه سطر هارو میزون کنه و هربار که سطری اضافه میشه ID جدید رو درست قرار بده .ضمناً برنامه را با VB نوشتم .
بله همونه
با سلام : من می خوام اطلاعات زیادی را در فیلد باینری بانک SQL SERVER ذخیره کنم و با این کار حجم دتابیس به شدت افزایش پیدا خواهد کرد . آیا با افزایش حجم دتابیس مشکلی پیش نخواهد آمد.از راهنمایتان بی نهایت سپاسگذارم.در ضمن برنامه را با ویژوال بیسیک می نویسم.
میتونین از رلیزن شیپ استفاده کنین تا تو جستجو مشکلی پیش نیاد و قبل از ریختن داخل فیلد از یک الگوریتم فشرده سازی استفاده کنید تا حجم اطلاعاتی که وارد بانکتون میشه کمتر بشه و زیاد به سرور فشار نیاد