Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ID Identity 
V
    Опции темы
Diiana
Дата 9.1.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Всем здрасте!Я использую Sql Server.ID Identity в таблице хочется обновить после того как закончил работать с таблицей.. чтобы оно сново начиналось с 1.Подскажите как это сделать.
PM MAIL   Вверх
Deniel_li
Дата 9.1.2008, 15:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 6.12.2007

Репутация: 1
Всего: 1



попробуй

DBCC CHECKIDENT (имя таблицы, RESEED, номер)

пример:
DBCC CHECKIDENT (mytable, RESEED, 1)

PM MAIL   Вверх
Diiana
Дата 9.1.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



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

PM MAIL   Вверх
Deniel_li
Дата 9.1.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 6.12.2007

Репутация: 1
Всего: 1



выполните 
select IDENT_CURRENT('table_name') 

какое значение получилось?

-----
проверил, должно получиться - значение поля identity устанавливается в 1 после
DBCC CHECKIDENT (mytable, RESEED, 1)


или я не правильно понял задачу?

Это сообщение отредактировал(а) Deniel_li - 9.1.2008, 15:51
PM MAIL   Вверх
Diiana
Дата 9.1.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



вот например у меня есть табличка с 2-мя полями, 1-ое ID,2-ое значение:
2 пар
3 арр
5 енк
6 екн
мне нужен запрос, который начинает опять id с 1:
1 пар
2 арр
3 енк
4 екн
PM MAIL   Вверх
under_sun
Дата 10.1.2008, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 3.10.2007
Где: Ебург

Репутация: 5
Всего: 17



Можно сохранить записи во временную таблицу, удалить все записи из основной, сбросить идентити,  и вставить снова:
Код

SELECT * INTO Temp FROM MyTable
DELETE FROM MyTable

DBCC CHECKIDENT (mytable, RESEED, 0)
INSERT INTO MyTable SELECT val FROM Temp ORDER BY id
DROP TABLE Temp


Но думаю более целесообразно завести представление, где 3-ий столбец - это ранг строки по id:
Код

CREATE VIEW MyView  
AS
    SELECT *, rank() OVER ( ORDER BY id ) as rank
    FROM MyTable

и работать с ним.
Т.е. если в MyTable:
2 пар
3 арр
5 енк
6 екн
то в MyView будет:
2 пар 1
3 арр 2
5 енк 3
6 екн 4


 
--------------------
TMTOWTDI
PM MAIL ICQ   Вверх
Diiana
Дата 10.1.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Спасибо всем большое за помощь,получилось как предложил  under_sun  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0723 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.