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

Откуда: Оттуда...
Сообщений: 26965
Если сделать UPDATE Tabel SET ColumnName = 1000*RAND()
То во всём столбце(во всех строках) будет одинаковое случайное число.
А надо разные.

Спасибо.
13 апр 12, 20:05    [12414380]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
UPDATE Tabel SET ColumnName = checksum(newid())
13 апр 12, 20:11    [12414419]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 26965
Ray D
UPDATE Tabel SET ColumnName = checksum(newid())


Уточню - положительными случайными числами.

А то что вы привели выдаёт и отрицательные. Как их взять по модулю?
13 апр 12, 20:17    [12414458]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 26965
Если совсем обнаглеть - то хотелось бы ещё и не больше 6 знаков число было.
13 апр 12, 20:19    [12414474]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
select 
    cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int )
from    sys.sysobjects


Сообщение было отредактировано: 13 апр 12, 20:21
13 апр 12, 20:21    [12414485]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
* 999999 правильно.
13 апр 12, 20:25    [12414499]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 26965
Гавриленко Сергей Алексеевич
select 
    cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int )
from    sys.sysobjects


Top 1 нужно добавить, а так работает:
UPDATE Tabel SET ColumnName = (select top 1 cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int ) from sys.sysobjects)

СПАСИБО!
13 апр 12, 20:26    [12414507]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
M234
Гавриленко Сергей Алексеевич
select 
    cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int )
from    sys.sysobjects


Top 1 нужно добавить, а так работает:
UPDATE Tabel SET ColumnName = (select top 1 cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int ) from sys.sysobjects)

СПАСИБО!
Дык это пример.

Должно без всякого sysobjects работать:
UPDATE Tabel SET ColumnName = cast ( rand( cast ( newid() as varbinary(16) ) ) * 999999+ 1 as int )
13 апр 12, 20:27    [12414516]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбец таблицы случайными числами?  [new]
M234
Member

Откуда: Оттуда...
Сообщений: 26965
Гавриленко Сергей Алексеевич
M234
пропущено...


Top 1 нужно добавить, а так работает:
UPDATE Tabel SET ColumnName = (select top 1 cast ( rand( cast ( newid() as varbinary(16) ) ) * 1000000 + 1 as int ) from sys.sysobjects)

СПАСИБО!
Дык это пример.

Должно без всякого sysobjects работать:
UPDATE Tabel SET ColumnName = cast ( rand( cast ( newid() as varbinary(16) ) ) * 999999+ 1 as int )


Ага - работает.
Ещё раз спасибо!
13 апр 12, 20:30    [12414526]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить