Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Id Identity
Diana
Вставить ник
сообщение 9:01:2008, 10:43
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 25
Регистрация: 28:06:2007
Пользователь №: 11 595
Специализация: инженер-программист



Репутация: - 0 +


Всем здрасте!Я использую Sql Server.ID Identity в таблице хочется обновить после того как закончил работать с таблицей.. чтобы оно сново начиналось с 1.Подскажите как это сделать.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 14)
sax_ol
Вставить ник
сообщение 9:01:2008, 11:37
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: Diana
Не совсем понятно, для чего вам такое, но впрочем вот: DBCC CHECKIDENT
Подняться вверх 
 
Сообщение #2
Diana
Вставить ник
сообщение 9:01:2008, 13:04
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 25
Регистрация: 28:06:2007
Пользователь №: 11 595
Специализация: инженер-программист



Репутация: - 0 +


Я записала запрос по примеру "DBCC CHECKIDENT (mytable, RESEED, 1)", но ничего не случилось, всё осталось по прежнему
Подняться вверх 
 
Сообщение #3
sax_ol
Вставить ник
сообщение 9:01:2008, 13:13
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: Diana
И что, молча так, ничего нигде ни написало, или как вы поняли, что всё осталось по прежнему?
Подняться вверх 
 
Сообщение #4
Diana
Вставить ник
сообщение 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
sax_ol
Вставить ник
сообщение 9:01:2008, 13:42
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(Diana @ 9:01:2008, 15:21 )
мне нужен запрос, который начинает опять id с 1:

где надо, чтоб поменял значение полей на сервере (но смысл в этом??) или на клиенте (а это уже совсем другой вопрос)?
Хотя и в том и в том случае, не вижу необходимости. smile.gif
Подняться вверх 
 
Сообщение #6
Diana
Вставить ник
сообщение 9:01:2008, 17:36
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 25
Регистрация: 28:06:2007
Пользователь №: 11 595
Специализация: инженер-программист



Репутация: - 0 +


а что есть значение на сервере или на клиенте?в чём различие?короче ситуация такая:у меня БД на сервере в которой id перешёл за 1000,хотя значений не больше 400.за 1000 перешло из-за постоянных добавлений и удалений записей,необходимо что бы последняя запись (id) = не 1000,а действительному числу самих записей,мне это необходимо для дальнейших действий
Подняться вверх 
 
Сообщение #7
sax_ol
Вставить ник
сообщение 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
Diana
Вставить ник
сообщение 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
sax_ol
Вставить ник
сообщение 10:01:2008, 09:09
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: Diana
Все-таки не могу понять, зачем вам менять эти данные. По сути они служат только для внутренних (технических, целостность данных, связи ...) нужд, и как правило для пользователя недоступны и неинтересны. В своей практике мне никогда этого не приходилось делать.
Плохо конечно, что вы не говорите про саму задачу ...
Подняться вверх 
 
Сообщение #10
European
Вставить ник
сообщение 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
maykoff
Вставить ник
сообщение 11:01:2008, 22:10
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 56
Регистрация: 22:11:2006
Пользователь №: 7 960
Специализация: php mysql html css smarty



Репутация: - 2 +


Для: European
Цитата
уберите Identity и задавайте значения первичного ключа для каждой записи при вставке

Стоит ли? Ведь можно добавить отдельное поле, в которое вставлять, скажем, нумерацию. А ID - лучше не трогать, это основной индекс таблицы.
Подняться вверх 
 
Сообщение #12
European
Вставить ник
сообщение 14:01:2008, 11:10
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Для: maykoff
Ты писатель, а не читатель? Прочти внимательно мой пост
Подняться вверх 
 
Сообщение #13
maykoff
Вставить ник
сообщение 14:01:2008, 12:06
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 56
Регистрация: 22:11:2006
Пользователь №: 7 960
Специализация: php mysql html css smarty



Репутация: - 2 +


Для: European
Sorry, пропустил как-то.
Подняться вверх 
 
Сообщение #14
Black horse
Вставить ник
сообщение 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


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 04:11
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net