[quote]دوست عزیزم روشی که گفتین میتونه جواب بده اما بسیار کنده. بهینه ترین راه استفاده از خاصیت Join هستش. برای مثال، در جدول زیر من چند مقدار بین 1 تا 10 وارد میکنم ولی 4,6,7,9 رو جا میندازم:
create table sanad(
sid int)
insert sanad values(1)
insert sanad values(3)
insert sanad values(2)
insert sanad values(8)
insert sanad values(10)
insert sanad values(5)
create index ix1 on sanad(sid)
توجه کنین که به ایندکس برای سرعت بالاتر نیاز داریم.
به فرض اینکه Min و Max شما 1 و 10 باشن، باید یک جدول مجازی ایجاد کنیم و از 1 تا 10 رو در این جدول وارد کنیم. بعد با یک Join رکوردهای جا افتاده بدست میاد:
declare @Min int
declare @Max int
set @Min=1
set @Max=10
declare @tmp table(tid int primary key)
declare @Counter int
set @Counter=@Min
while @Counter <=@Max
begin
insert @tmp values(@Counter)
set @Counter=@Counter+1
end
select t.tid from @tmp t left outer join sanad s
on t.tid=s.sid
where s.sid is null
[/quote]
دوستان من مشکل رو با این کدی که استاد ثباتی راهنمایی کردن حل کردم.
حالا وقتی میخوام فیلد tid یا sid رو نمایش بدم در یک memo خطا میدهد که نمیتواند یک مقدار null را در یک string بریزد. چه جوری میتونم مشکلمو حل کنم.؟؟؟؟؟؟؟؟