Id Identity

  • Автор темы Diana
  • Дата начала
D

Diana

#1
Всем здрасте!Я использую Sql Server.ID Identity в таблице хочется обновить после того как закончил работать с таблицей.. чтобы оно сново начиналось с 1.Подскажите как это сделать.
 
D

Diana

#2
Я записала запрос по примеру "DBCC CHECKIDENT (mytable, RESEED, 1)", но ничего не случилось, всё осталось по прежнему
 
D

Diana

#3
нумерация не изменилась, с 1 не началась.
вот например у меня есть табличка с 2-мя полями, 1-ое ID,2-ое значение:
2 пар
3 арр
5 енк
6 екн
мне нужен запрос, который начинает опять id с 1:
1 пар
2 арр
3 енк
4 екн
 
D

Diana

#4
а что есть значение на сервере или на клиенте?в чём различие?короче ситуация такая:у меня БД на сервере в которой id перешёл за 1000,хотя значений не больше 400.за 1000 перешло из-за постоянных добавлений и удалений записей,необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий
 
D

Diana

#5
я вижу 2 выхода:
1-либо тот про каторый я спрашиваю(обновлять id)
2-я могу использовать ф-ю max(id),но последнее максим. значение - 999, а 1000-это для sql уже не max,он эту запись пишет ближе к 1.может как нибудь можно чтобы max значение выдавал 1000
 
04.09.2006
2 566
3
#6
<!--QuoteBegin-Diana+9:01:2008, 19:36 -->
<span class="vbquote">(Diana @ 9:01:2008, 19:36 )</span><!--QuoteEBegin-->необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий
[snapback]92762" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это необходимо пользователю? Создайте отдельное поле, в котором будете хранить то значение, которое вам требуется, а Identity не трогайте, так как оно используется для служебный целей. Если этот вариант не приемлем, то уберите Identity и задавайте значения первичного ключа для каждой записи при вставке
 
M

maykoff

#7
Для: European
уберите Identity и задавайте значения первичного ключа для каждой записи при вставке
Стоит ли? Ведь можно добавить отдельное поле, в которое вставлять, скажем, нумерацию. А ID - лучше не трогать, это основной индекс таблицы.
 
04.09.2006
2 566
3
#8
Для: maykoff
Ты писатель, а не читатель? Прочти внимательно мой пост
 
B

Black horse

#10
Грубый вариант:
создаем темповую таблицу с двумя полями id и status_id
вот как-то так

id status_id
1 y
2 y
3 y
4 y
5 n
6 y
... ...
1000 y
по данному примеру - id=5 не используется, значит вставляем нужную запись с этим айдишником, а в темповой таблице меняем статус ид=5.
что типа такого запроса должно подойти:
Код:
select id
into new_id
from temp
where status_id = 'n'
and rownum < 1;