powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выявить MIN из отсутствующих значений ключевого поля ?
4 сообщений из 4, страница 1 из 1
Как выявить MIN из отсутствующих значений ключевого поля ?
    #32018305
Almi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица с ключом Integer:
#Key #Name
1 abc
2 bca
4 wert
..........
Хочу вставить запись с минимально возможным значением ключа (т.е. 3 в данном случае).
Как определить не использованное минимальное значение ключевого поля?
...
Рейтинг: 0 / 0
Как выявить MIN из отсутствующих значений ключевого поля ?
    #32018309
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create table #temp(f1 int, f2 varchar(10))

insert into #temp values(1, 'a')
insert into #temp values(2, 'b')
insert into #temp values(4, 'c')
insert into #temp values(5, 'd')
insert into #temp values(7, 'e')
insert into #temp values(9, 'f')

select * from #temp a left outer join #temp b on (a.f1+1) = b.f1 where b.f1 is null

select min(a.f1+1) from #temp a left outer join #temp b on (a.f1+1) = b.f1 where b.f1 is null

drop table #temp
...
Рейтинг: 0 / 0
Как выявить MIN из отсутствующих значений ключевого поля ?
    #32018311
select @NewKey=min(Key)+1 from Table t1
where not exists (select * from Table t2 where t2.Key=t1.Key+1)

или

select top 1 @NewKey=Key+1 from Table t1
where not exists (select * from Table t2 where t2.Key=t1.Key+1)
order by Key ASC

Второй вариант на порядок быстрее, если на поле Key есть уникальный кластерный индекс
...
Рейтинг: 0 / 0
Как выявить MIN из отсутствующих значений ключевого поля ?
    #32018334
Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я использую типа этого
SET @NewKey = 0
WHILE (EXISTS (SELECT Key FROM Table WHERE Key = @NewKey))
SET @NewKey = @NewKey + 1

хорошо работает в диапазоне Key до 1000
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выявить MIN из отсутствующих значений ключевого поля ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]