Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
9:01:2008, 10:43
|
|
Новенький ![]() Группа: Программист Сообщений: 25 Регистрация: 28:06:2007 Пользователь №: 11 595 Специализация: инженер-программист Репутация: 0
|
Всем здрасте!Я использую Sql Server.ID Identity в таблице хочется обновить после того как закончил работать с таблицей.. чтобы оно сново начиналось с 1.Подскажите как это сделать.
|
|
Сообщение
#1
|
|
![]() |
|
|
9:01:2008, 11:37
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Для: Diana
Не совсем понятно, для чего вам такое, но впрочем вот: DBCC CHECKIDENT |
|
Сообщение
#2
|
|
|
|
9:01:2008, 13:04
|
|
Новенький ![]() Группа: Программист Сообщений: 25 Регистрация: 28:06:2007 Пользователь №: 11 595 Специализация: инженер-программист Репутация: 0
|
Я записала запрос по примеру "DBCC CHECKIDENT (mytable, RESEED, 1)", но ничего не случилось, всё осталось по прежнему
|
|
Сообщение
#3
|
|
|
|
9:01:2008, 13:13
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Для: Diana
И что, молча так, ничего нигде ни написало, или как вы поняли, что всё осталось по прежнему? |
|
Сообщение
#4
|
|
|
|
9:01:2008, 13:21
|
|
Новенький ![]() Группа: Программист Сообщений: 25 Регистрация: 28:06:2007 Пользователь №: 11 595 Специализация: инженер-программист Репутация: 0
|
нумерация не изменилась, с 1 не началась.
вот например у меня есть табличка с 2-мя полями, 1-ое ID,2-ое значение: 2 пар 3 арр 5 енк 6 екн мне нужен запрос, который начинает опять id с 1: 1 пар 2 арр 3 енк 4 екн |
|
Сообщение
#5
|
|
|
|
9:01:2008, 13:42
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Цитата(Diana @ 9:01:2008, 15:21 ) мне нужен запрос, который начинает опять id с 1: где надо, чтоб поменял значение полей на сервере (но смысл в этом??) или на клиенте (а это уже совсем другой вопрос)? Хотя и в том и в том случае, не вижу необходимости. |
|
Сообщение
#6
|
|
|
|
9:01:2008, 17:36
|
|
Новенький ![]() Группа: Программист Сообщений: 25 Регистрация: 28:06:2007 Пользователь №: 11 595 Специализация: инженер-программист Репутация: 0
|
а что есть значение на сервере или на клиенте?в чём различие?короче ситуация такая:у меня БД на сервере в которой id перешёл за 1000,хотя значений не больше 400.за 1000 перешло из-за постоянных добавлений и удалений записей,необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий
|
|
Сообщение
#7
|
|
|
|
9:01:2008, 17:50
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Цитата(Diana @ 9:01:2008, 19:36 ) а что есть значение на сервере или на клиенте?в чём различие? На сервере - значит физически в таблице в соотв. поле на диске ... реальные данные ... На клиента - грубо говоря то что пользователь видит. А ему можно показать хоть черта лысого, не имеющего отношение к реальным данным. При этом человек будет думать что все ок, и всем хорошо. Цитата(Diana @ 9:01:2008, 19:36 ) id перешёл за 1000,хотя значений не больше 400.за 1000 перешло из-за постоянных добавлений и удалений записей Это нормальная ситуация, даже супер нормальная, значит ею пользуются и нужна комуто! Цитата(Diana @ 9:01:2008, 19:36 ) необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий А вот вы расскажите про эти действия, может и делать то ничего не надо или найдем более "правильный" способ. |
|
Сообщение
#8
|
|
|
|
9:01:2008, 18:01
|
|
Новенький ![]() Группа: Программист Сообщений: 25 Регистрация: 28:06:2007 Пользователь №: 11 595 Специализация: инженер-программист Репутация: 0
|
я вижу 2 выхода:
1-либо тот про каторый я спрашиваю(обновлять id) 2-я могу использовать ф-ю max(id),но последнее максим. значение - 999, а 1000-это для sql уже не max,он эту запись пишет ближе к 1.может как нибудь можно чтобы max значение выдавал 1000 |
|
Сообщение
#9
|
|
|
|
10:01:2008, 09:09
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Для: Diana
Все-таки не могу понять, зачем вам менять эти данные. По сути они служат только для внутренних (технических, целостность данных, связи ...) нужд, и как правило для пользователя недоступны и неинтересны. В своей практике мне никогда этого не приходилось делать. Плохо конечно, что вы не говорите про саму задачу ... |
|
Сообщение
#10
|
|
|
|
10:01:2008, 09:38
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 816 Регистрация: 4:09:2006 Из: Минск Пользователь №: 6 316 Специализация: C++ Репутация: 31
|
Цитата(Diana @ 9:01:2008, 19:36 ) необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий Это необходимо пользователю? Создайте отдельное поле, в котором будете хранить то значение, которое вам требуется, а Identity не трогайте, так как оно используется для служебный целей. Если этот вариант не приемлем, то уберите Identity и задавайте значения первичного ключа для каждой записи при вставке |
|
Сообщение
#11
|
|
|
|
11:01:2008, 22:10
|
|
Новенький ![]() Группа: Программист Сообщений: 56 Регистрация: 22:11:2006 Пользователь №: 7 960 Специализация: php mysql html css smarty Репутация: 2
|
Для: European
Цитата уберите Identity и задавайте значения первичного ключа для каждой записи при вставке Стоит ли? Ведь можно добавить отдельное поле, в которое вставлять, скажем, нумерацию. А ID - лучше не трогать, это основной индекс таблицы. |
|
Сообщение
#12
|
|
|
|
14:01:2008, 11:10
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 816 Регистрация: 4:09:2006 Из: Минск Пользователь №: 6 316 Специализация: C++ Репутация: 31
|
Для: maykoff
Ты писатель, а не читатель? Прочти внимательно мой пост |
|
Сообщение
#13
|
|
|
|
14:01:2008, 12:06
|
|
Новенький ![]() Группа: Программист Сообщений: 56 Регистрация: 22:11:2006 Пользователь №: 7 960 Специализация: php mysql html css smarty Репутация: 2
|
Для: European
Sorry, пропустил как-то. |
|
Сообщение
#14
|
|
|
|
12:02:2008, 09:55
|
|
Новенький ![]() Группа: Программист Сообщений: 51 Регистрация: 8:06:2007 Пользователь №: 11 298 Специализация: C++, java,pascal programmer Репутация: 3
|
Грубый вариант:
создаем темповую таблицу с двумя полями 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; |
|
Сообщение
#15
|
|
![]() |
|
Текстовая версия | Сейчас: 17:05:2008 - 04:11 |