Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 23

Вставка данных в таблицу Insert

14.02.2016, 13:29. Показов 1783. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, есть таблица например временная

T-SQL
1
2
3
4
5
Declare @ii table (cc int, dd int)
 
--хочу в нее вставить insert
 
insert @ii (cc,dd) values (22, 'select 1,2,3,4,5,6,7,8,9,10')
Что хочу получить, одним инсертом, вставить 10 строк, что б первое значение было 22 и второе значение из селекта вставилось в каждую новую строку.

Как поступить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2016, 13:29
Ответы с готовыми решениями:

Вставка данных в новую таблицу
Добрый день! Когда-то было тестовым заданием для меня (сейчас решил доделать). ТЕКСТ ЗАДАЧИ: Имеется список женихов и список невест....

Сложный INSERT в пустую таблицу
Не нашел подобной темы, как ни пытался. Не могу понять как реализовать запрос. Существует таблица table1, с несколькими столбцами...

INSERT в таблицу с автоинкрементирующимся полем (javascript + websql)
Надеюсь раздел выбрал правильно. Пытаюсь выполнить такую функцию (javascript, работаю с websql): db.transaction(function (tx) { ...

7
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.02.2016, 13:47
Цитата Сообщение от alexs777 Посмотреть сообщение
Declare @ii table (cc int, dd int)
--хочу в нее вставить insert
insert @ii (cc,dd) values (22, 'select 1,2,3,4,5,6,7,8,9,10')
Что хочу получить, одним инсертом, вставить 10 строк, что б первое значение было 22 и второе значение из селекта вставилось в каждую новую строку.
1. @ii - это не временная таблица
2. как можно было додуматься до такого "синтаксиса"?
3. универсальное решение - INSERT SELECT UNION ALL SELECT UNION ALL SELECT ...
4.
T-SQL
1
insert @ii(cc,dd) values (22,1),(22,2),(22,3),(22,4),(22,5),(22,6),(22,7),(22,8),(22,9),(22,10);
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 23
14.02.2016, 13:55  [ТС]
iap
А если мне в селекте надо 1000 значений вставить то уже вариант не подойдет такой
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.02.2016, 14:07
Цитата Сообщение от alexs777 Посмотреть сообщение
iap
А если мне в селекте надо 1000 значений вставить то уже вариант не подойдет такой
Откуда возьмутся эти 1000 записей?
Для массовой вставки имеются BULK INSERT, bcp и т.д.
Кроме того, в UNION ALL можно задать много-много SELECTов.
А количество строк в VALUES(...,...),(...,...),... официально ограничены 1000, а на самом деле больше
0
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 23
14.02.2016, 14:29  [ТС]
На самом деле я упростил вопрос.
есть select id from @ii2 где тысяча строк
и мне б его вставить в другую таблицу, в которой столбец сс один остается, в dd мне нужно вставить из select id from @ii2
Что то типа insert @ii(cc,dd) values (21,(select id from @ii2))
Из-за того что в select id from @ii2 много строк, ругается, как сделать что б не ругался не понятно
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
14.02.2016, 14:32
Лучший ответ Сообщение было отмечено alexs777 как решение

Решение

Цитата Сообщение от alexs777 Посмотреть сообщение
А если мне в селекте надо 1000 значений вставить то уже вариант не подойдет такой
Ограничение в 1000 элементов относится только для непосредственного values в insert. Если писать
T-SQL
1
2
3
4
5
6
insert into [Table]
 (field1, field2, ..., fieldN)
 select
  t.field1, t.field2, ..., t.fieldN
 from
  (values (...), ..., (...)) t(field1, field2, ..., fieldN);
Никаких ограничений нет.

Добавлено через 1 минуту
Цитата Сообщение от alexs777 Посмотреть сообщение
Что то типа insert @ii(cc,dd) values (21,(select id from @ii2))
Мда...
T-SQL
1
insert @ii(cc,dd) select 21, id from @ii2
Синтаксис инструкций нужно смотреть в документации, а не придумывать свой.
1
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.02.2016, 14:33
Лучший ответ Сообщение было отмечено alexs777 как решение

Решение

Цитата Сообщение от alexs777 Посмотреть сообщение
На самом деле я упростил вопрос.
есть select id from @ii2 где тысяча строк
и мне б его вставить в другую таблицу, в которой столбец сс один остается, в dd мне нужно вставить из select id from @ii2
Что то типа insert @ii(cc,dd) values (21,(select id from @ii2))
Из-за того что в select id from @ii2 много строк, ругается, как сделать что б не ругался не понятно
Что мешает посмотреть синтаксис INSERT в документации?
T-SQL
1
insert @ii(cc,dd) select 21, id from @ii2;
1
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 23
14.02.2016, 14:46  [ТС]
Всем огромное спасибо, все получилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2016, 14:46
Помогаю со студенческими работами здесь

Вставка в таблицу
Всем привет. Очень нужна помощь, разъясните, пожалуйста, в чём может быть проблема. Имеется 4 таблицы. table1, столбец Column1 ...

Оптимизация insert в таблицу большого числа строк (100000 и более)
Добрый день! Задача такая - используя задачу по расписанию (vbs-скрипт) перелить из одной таблицы в другую большое число строк. Более 1...

Вставка в новую таблицу
Доброго времени суток. Есть вот такой код: Use SalesAnalyst INSERT INTO .dbo.MyOFF ( Contractor, OUTNUM, ORDNUM,

Разбор xml и вставка в таблицу
Добрый день! Столкнулась с проблемой при разборе xml-пакета для его дальнейшего экспорта в БД Пакет выглядит так ...

Из-за триггера не происходит вставка в таблицу
Есть вот такая процедура вставки в таблицы: ALTER PROCEDURE . @Client char(30), @Personnel char(30), @towar char(30), ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru