ورود

View Full Version : بدست آوردن ردیف های پاک شده



یاسر مددیان
چهارشنبه 14 مهر 1389, 16:47 عصر
سلام
من یه جدول دارم که یه فیلد ردیف داره. فیلد ردیف کنتور میندازه و یه شماره یه شماره زیاد میشه. یه سری از رکوردها از قبل پاک شدن. حالا ردیفمون به این صورت در اومده، مثلا:
1
2
3
5
8
و ...

حالا من یه دستور می خوام که شماره هایی که تو ردیف نیست رو در بیارم. توی مثال میشه : 4و6و7


ممنون میشم کمک کنید.


با تشکر

AmirAmiri
چهارشنبه 14 مهر 1389, 17:40 عصر
سلام.
یه راه هست اما اصولی نیست.
مثلا برای جدولی که به این صورت طراحی شده :

CREATE TABLE tblNumbers(ID bigint)
و از اعداد یک تا 80 هزار پر شده میخوایم اولین عددی رو پیدا کنیم که از توی این لیست حذف شده :

Declare @ID bigint, @ID2 bigint
SET @ID=1
SET @ID2=0
WHILE(@ID=@ID2+1)
BEGIN
SET @ID2=@ID
SELECT TOP 1 @ID=ID FROM tblNumbers WHERE ID>@ID2 ORDER BY ID ASC
END
IF @ID>0 SELECT @ID2+1

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

INSERT INTO tblNumbers(ID) VALUES (@ID2+1)
اون عدد رو وارد جدول کردید حالا اگه دوباره همون کد رو اجرا کنید بهتون یک عدد دیگه میده.
موفق و پیروز باشید.

بهزادصادقی
چهارشنبه 14 مهر 1389, 22:01 عصر
سلام
من یه جدول دارم که یه فیلد ردیف داره. فیلد ردیف کنتور میندازه و یه شماره یه شماره زیاد میشه. یه سری از رکوردها از قبل پاک شدن. حالا ردیفمون به این صورت در اومده، مثلا:
1
2
3
5
8
و ...

حالا من یه دستور می خوام که شماره هایی که تو ردیف نیست رو در بیارم. توی مثال میشه : 4و6و7


ممنون میشم کمک کنید.


با تشکر

فکر کنم این کمکتان کند:

http://barnamenevis.org/forum/showthread.php?p=1097305#post1097305