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

Откуда: Düsseldorf
Сообщений: 17
привет, Народ!

Интересует как заменить значение в одной коллонке не прибегая к ручной работе:)
Примерно так (ну очень грубо...ибо в SQL я не мастер)

declare @i int
select @i = 0

WHILE  не конец MyTable
BEGIN
UPDATE MyTable SET [Name] = 'bla-bla' WHERE ID = @i
set @i= @i +1 
END
15 июл 04, 12:08    [808866]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
UPDATE MyTable SET [Name] = 'bla-bla'
не пробовали???
15 июл 04, 12:09    [808873]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
altmenn
Member

Откуда: Düsseldorf
Сообщений: 17
OK! Спасибо...
Пробовала...Надо кроме того в колонке разные данные...В целях теста...Может можно как-нибудь значение на 1 увеличивать...Не обязательно строку - можно просто int;

declare @i int
select @i = 0


WHILE  @i < (SELECT COUNT(*) FROM MyTable)
BEGIN
UPDATE MyTableSET [Name] = @i  
set @i= @i +1 
END

или я уже брежу уже? :)
15 июл 04, 12:18    [808938]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
Glory
Member

Откуда:
Сообщений: 104760
UPDATE MyTable SET @i = [Name] = @i + 1
15 июл 04, 12:21    [808958]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
create table #tmp (id int)
GO
insert #tmp values (1)
insert #tmp values (2)
insert #tmp values (3)

declare @i int
select @i = 1

UPDATE #tmp set @i = id = @i + 1

select * from #tmp

drop table #tmp
15 июл 04, 12:22    [808962]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
altmenn
Member

Откуда: Düsseldorf
Сообщений: 17
...А если я все же varchar хочу...Поможет ли мне
UPDATE MyTable SET @i = [Name] = '@i + 1'

или как это сделать?


СПАСИБО Огромное!
15 июл 04, 12:30    [809004]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
тогда так

create table #tmp (id int,ch varchar(10))
GO
insert #tmp(id) values (1)
insert #tmp(id) values (2)
insert #tmp(id) values (3)

declare @i int
select @i = 1

UPDATE #tmp set ch=cast(@i as varchar(10)), @i = @i + 1

select * from #tmp

drop table #tmp
15 июл 04, 12:57    [809137]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE в цикле  [new]
Glory
Member

Откуда:
Сообщений: 104760
create table #tmp (id varchar(10))
GO
insert #tmp values ('1')
insert #tmp values ('2')
insert #tmp values ('3')

declare @i varchar(10)
select @i = '0'

UPDATE #tmp set @i = id = cast(@i as int)+1

select * from #tmp

drop table #tmp

ЗЫ
Только на всякий случай уточню что в общем случае порядок в котором будут обновляться записи точно не определен
15 июл 04, 13:19    [809221]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить