Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можно ли избежать такого... в TSQL?  [new]
Andrey Pogorelov
Member

Откуда: Ростов-на-Дону
Сообщений: 312
Добрый день Алл.

Необходимо перенумировать таблицу, до этого поле "id_abon" заполнено значением null. Делаю так.
declare @id_abon int, @i int, @kod_abon varchar(5)
declare my_cursor cursor for SELECT id_abon, kod_abon FROM EKL1 ORDER BY cast(kod_abon AS int) 
open my_cursor
fetch next from my_cursor into @id_abon, @kod_abon
set @i=0
WHILE @@FETCH_STATUS = 0
begin
   set @i=@i+1
   update ekl1 set id_abon=@i where kod_abon=@kod_abon
   fetch next from my_cursor into @id_abon, @kod_abon		
   print @kod_abon
end
CLOSE my_cursor
DEALLOCATE my_cursor
select * from ekl1 order by id_abon
Все замечатель но хотелось как-нибудь компактнее, типа одним опретором update
15 июл 04, 16:41    [810453]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Артем1
Member

Откуда: www.desnogorsk.{ru||net} -> Москва
Сообщений: 2036
Это не про то-же самое?
15 июл 04, 16:44    [810467]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Николай МВ
Member

Откуда: Ukraine-Kyiv
Сообщений: 328
FAQ
15 июл 04, 16:46    [810475]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
zass
Member

Откуда: Minsk
Сообщений: 1043
Я не знаю задачи и не видел таблицы: поле "id_abon" может быть IDENTITY(1,1) и оно само все пронумерует.
15 июл 04, 16:49    [810497]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Andrey Pogorelov
Member

Откуда: Ростов-на-Дону
Сообщений: 312
Ага в FAQ одной строкой реализованно. :)
15 июл 04, 16:50    [810502]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Andrey Pogorelov
Member

Откуда: Ростов-на-Дону
Сообщений: 312
Нет, поле "id_abon" добавляется к созданной базе, в которой более 5000 запискй и оно пустое.
15 июл 04, 16:52    [810515]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
zass
Member

Откуда: Minsk
Сообщений: 1043
Вот-вот. Я добавлял в таблицу поле, которое должно было пронумеровать попорядку все записи таблицы. Смотри мой предыдущий ответ.
15 июл 04, 17:00    [810557]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Andrey Pogorelov
Member

Откуда: Ростов-на-Дону
Сообщений: 312
Можно поподробней насчет добавления поля identity если нет ниодной записи в этом поле.
15 июл 04, 17:04    [810587]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
zass
Member

Откуда: Minsk
Сообщений: 1043
Andrey Pogorelov
Можно поподробней насчет добавления поля identity если нет ниодной записи в этом поле.

Поясните выделенное
15 июл 04, 17:07    [810608]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Andrey Pogorelov
Member

Откуда: Ростов-на-Дону
Сообщений: 312
Т.е. в этом поле нет записей, вернее они null, а в других есть, если я пытаюсь добавить поле типа IDENTITY получаю ошибку, что поле не может быть пустым.
16 июл 04, 08:05    [811634]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли избежать такого... в TSQL?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Andrey Pogorelov
Т.е. в этом поле нет записей, вернее они null, а в других есть, если я пытаюсь добавить поле типа IDENTITY получаю ошибку, что поле не может быть пустым.

Код и текст(полный) ошибки.
16 июл 04, 09:08    [811727]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить