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

Откуда:
Сообщений: 52
Есть таблица с пользователями c двумя полями ID и USERS, где айди начинается с нуля. Как мне изменить нумерацию айди, чтобы начиналась со ста, и записи которые были на старом айди соответствовали на новом.
Чтобы было вот так.
1. Пупкин ----> 100 Пупкин
2 егоров -----> 101 егоров
3 Васильев ----> 102 Васильев

Пробовал написать через курсор, но не получилось.

declare @ID int
declare cur cursor for
select ID from USERS for update OF ID
open cur
fetch next from cur into @ID
SET @ID=1100

while @@FETCH_STATUS =0
begin

UPDATE [dbo].[USERS]
SET ID=@ID
WHERE CURRENT OF cur
FETCH NEXT FROM cur
set @ID=@ID+1
End
27 сен 18, 11:08    [21687904]     Ответить | Цитировать Сообщить модератору
 Re: Курсор UPDATE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
El_Ninio,

SET Id + 100?
27 сен 18, 11:12    [21687917]     Ответить | Цитировать Сообщить модератору
 Re: Курсор UPDATE  [new]
El_Ninio
Member

Откуда:
Сообщений: 52
TaPaK, опечаток должно было сто.
27 сен 18, 11:49    [21687974]     Ответить | Цитировать Сообщить модератору
 Re: Курсор UPDATE  [new]
El_Ninio
Member

Откуда:
Сообщений: 52
где set @id=1100
27 сен 18, 11:51    [21687976]     Ответить | Цитировать Сообщить модератору
 Re: Курсор UPDATE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
El_Ninio,

SET Id + 1099
27 сен 18, 11:52    [21687979]     Ответить | Цитировать Сообщить модератору
 Re: Курсор UPDATE  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
with t as
(
 select ID, row_number() over (order by ID) + 99 as new_ID from [Есть таблица с пользователями]
)
update t set ID = New_ID;
27 сен 18, 11:53    [21687980]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить