Id Identity

Тема в разделе "SQL", создана пользователем Diana, 9 янв 2008.

  1. Diana

    Diana Гость

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

    Diana Гость

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

    Diana Гость

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

    Diana Гость

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

    Diana Гость

    я вижу 2 выхода:
    1-либо тот про каторый я спрашиваю(обновлять id)
    2-я могу использовать ф-ю max(id),но последнее максим. значение - 999, а 1000-это для sql уже не max,он эту запись пишет ближе к 1.может как нибудь можно чтобы max значение выдавал 1000
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--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 и задавайте значения первичного ключа для каждой записи при вставке
     
  7. maykoff

    maykoff Гость

    Для: European
    Стоит ли? Ведь можно добавить отдельное поле, в которое вставлять, скажем, нумерацию. А ID - лучше не трогать, это основной индекс таблицы.
     
  8. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Для: maykoff
    Ты писатель, а не читатель? Прочти внимательно мой пост
     
  9. maykoff

    maykoff Гость

    Для: European
    Sorry, пропустил как-то.
     
  10. Black horse

    Black horse Гость

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

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

Поделиться этой страницей