Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Якобинец
306 / 16 / 1
Регистрация: 26.01.2013
Сообщений: 337
1

Вставить в таблицу 10 000 000 строк одним запросом

06.06.2016, 21:39. Просмотров 672. Ответов 6
Метки нет (Все метки)

Предполагаю, что задача типовая. Но вот не особо гуглится. Мне надо создать sql скрипт, который запишет в таблицу 10 млн записей с Guid.
Если я правильно понял, мне сначала надо создать таблицу из одного столбца типа Guid, а затем нагенерировать строк. В этом случае идентификаторы сгенерируются автоматически. Подскажите, как это сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2016, 21:39
Ответы с готовыми решениями:

Начинаю удалять строчки из таблицы ~ 1 000 000 переполняется Log
Правильно ли это

Процедура: множественное добавление в таблицу одним запросом
Доброго времени суток! есть таблица table, в ней поля name, chislo. Как с...

Быстро вставить ~300.000 записей
Приветствую уважаемые! Возникла тут небольшая проблемка, как в две связанные...

Извлечение из столбца 2 700 000 строк
Необходимо как-то вытащить эти строки из базы. Есть какой-нибудь изощренный...

Вставить 1000 строк в таблицу
Есть простейшая таблица состоящая из 2 столбцов id, flag Подскажите как можно...

6
m0nax
1203 / 908 / 109
Регистрация: 12.01.2010
Сообщений: 1,891
Завершенные тесты: 3
06.06.2016, 22:24 2
http://www.codeproject.com/Articles/37471/SQL-Fast-GUID-List-Generator
1
invm
1891 / 1280 / 383
Регистрация: 02.06.2013
Сообщений: 3,243
06.06.2016, 23:21 3
Просто поразительно какую феерическую хрень люди пишут...

Цитата Сообщение от Якобинец Посмотреть сообщение
Мне надо создать sql скрипт, который запишет в таблицу 10 млн записей с Guid.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
with
 l0(n) as (select 1 union all select 1),
 l1(n) as (select 1 from l0 a cross join l0 b),
 l2(n) as (select 1 from l1 a cross join l1 b),
 l3(n) as (select 1 from l2 a cross join l2 b),
 l4(n) as (select 1 from l3 a cross join l3 b),
 l5(n) as (select 1 from l4 a cross join l4 b)
insert into МояТаблица with (tablock)
select top (10000000)
 newid()
from
 l5;
1
Якобинец
306 / 16 / 1
Регистрация: 26.01.2013
Сообщений: 337
07.06.2016, 23:30  [ТС] 4
А можешь в двух словах объяснить решение? Мы ведь пишем здесь Select, а не Insert
0
qwertehok
08.06.2016, 09:17
  #5

Не по теме:

а у меня этот хитрый запрос не отрабатывает (((
SQL Server 2014

0
invm
1891 / 1280 / 383
Регистрация: 02.06.2013
Сообщений: 3,243
08.06.2016, 11:12 6
Цитата Сообщение от Якобинец Посмотреть сообщение
Мы ведь пишем здесь Select, а не Insert
Мы здесь пишем insert ... select, т.е. вставляем в таблицу результат запроса.
Цитата Сообщение от qwertehok Посмотреть сообщение
а у меня этот хитрый запрос не отрабатывает (((
Как именно не отрабатывает?
1
qwertehok
2301 / 2205 / 602
Регистрация: 29.08.2013
Сообщений: 14,727
08.06.2016, 11:36 7
Цитата Сообщение от invm Посмотреть сообщение
Как именно не отрабатывает?
извиняюсь, все работает
неправильно имя таблицы указал

за 13 секунд
0
08.06.2016, 11:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 11:36

Выборка одним запросом
Имеется: - таблица 'справочник параметров': id,paramname - основная...

Множественная вставка одним запросом
Добрый вечер. Предположим, есть таблица вида: id, name, count. Id -...

Выбрать данные одним запросом
create table PrivateMessage ( Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru