Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230

Добавление записей в таблицу с условием

12.01.2016, 13:05. Показов 2792. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть рабочая таблица А. Есть временная таблица с данными - Б.
Нужно вставить данные из таблицы Б в А.
При этом есть логическая развилка. Если записей в А нет, то в поле В при каждой новой записи значение должно увеличиваться на 1. Если в А записи изначально есть, то нужно определить максимальное значение, и при добавлении каждой новой записи также увеличивать значение в поле В на единицу. Подскажите пожалуйста как сделать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2016, 13:05
Ответы с готовыми решениями:

Добавление записей в таблицу циклом?
Доброе время суток, товарищи. Только начал разбираться с Transact-SQL и тут застрял, как казалось, на элементарном запросе. Вообщем так:...

Добавление записей в таблицу из другой таблицы по совпадающим столбцам
Доброго времени суток. Подскажите, пожалуйста, решение данной задачи: Имеется две таблицы. Таблицы имеют более 150 колонок,...

Копировать столбец в другую таблицу с условием
Здравствуйте. У меня есть 2 таблицы. 1-я содержит столбцы Id Artist Track. 2-я Id Artist Track Artist_id. как мне скопировать из первой...

14
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.01.2016, 13:50
Из вашего описания ничего не понятно.
Лучше покажите пример данных и желаемый результат.
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
12.01.2016, 14:14  [ТС]
invm,
временная таблица #points
T-SQL
1
2
3
4
5
6
7
create table #points
(
lat float,
lon float,
x float,
y float
)
Рабочая таблица
T-SQL
1
2
3
4
5
6
7
CREATE TABLE ABC    
    [id_point] [int] NOT NULL,
    [lat] [float] NOT NULL,
    [lon] [float] NOT NULL,
    [x] [int] NOT NULL,
    [y] [int] NOT NULL 
(
хочу инсертом добавить данные из временной таблицы в таблицу рабочую.
Если в рабочей таблице есть записи - определить из всех записей максимальное значение поля id_point, после чего при переносе данных из временной таблицы для первой добавляемой записи сделать значение id_point на 1 больше максимальной, и для каждой последующей записи прибавлять это значение на единичку.

Если же в рабочей таблице записей нет, то за максимум принять 0 и при добавлении записей также прибавлять единичку для каждой последующей записи
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.01.2016, 14:41
Чем не устраивает identity или sequence?
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
12.01.2016, 14:46  [ТС]
invm, не то чтобы не устраивает, просто не представляю как использовать. Мне бы небольшой пример чтобы разобраться
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.01.2016, 15:08
Цитата Сообщение от Antykus Посмотреть сообщение
просто не представляю как использовать.
https://msdn.microsoft.com/ru-... 20%29.aspx
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
12.01.2016, 16:06  [ТС]
invm, sequence не подходит, я так понимаю, у меня строго SQL Server 2008. identity не получается использовать, так как имеется поле ID как primary key в табличке ABC. Зря я постом выше его убрал, для краткости, извиняюсь.
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.01.2016, 16:32
Цитата Сообщение от Antykus Посмотреть сообщение
identity не получается использовать, так как имеется поле ID как primary key в табличке ABC
Столбецу с identity ничего не мешает быть и primary key тоже.
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
13.01.2016, 10:09  [ТС]
invm, и поле с identity тоже уже существует в таблице. Ещё одному полю это свойство задать не получается. Видимо придётся каким-нибудь циклом пользоваться
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
13.01.2016, 10:51
T-SQL
1
2
3
4
5
6
create table ABC
(
 ...
 id_point as [столбец с identity],
 ...
)
?
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
13.01.2016, 10:58  [ТС]
invm, не, поле id в таблице ABC имеет свойство identity.

https://www.cyberforum.ru/atta... 1452671812
вот табличка АВС

https://www.cyberforum.ru/atta... 1452671812
вот временная табличка откуда гружу данные

по данному примеру мне нужно чтобы при добавлении в таблицу АВС данных из временной таблички в поле id_point автоматом указалось значение 38, далее 39 и так далее
Миниатюры
Добавление записей в таблицу с условием   Добавление записей в таблицу с условием  
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
13.01.2016, 11:23
T-SQL
1
2
3
4
5
6
7
insert into ABC
 (...)
 select
  identity(int, 1, 1) + t.offset, p.lat, p.lon, p.x, p.y
 from
  #points p cross join
  (select isnull(max(id_point), 0) from ABC with (tablockx)) t(offset);
0
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
13.01.2016, 11:34  [ТС]
invm, ругается https://www.cyberforum.ru/atta... 1452674045
Миниатюры
Добавление записей в таблицу с условием  
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
13.01.2016, 12:40
Виноват. Функция identity в данном контексте неприменима.
T-SQL
1
2
3
4
5
6
7
insert into ABC
 (...)
 select
  row_number() over (order by (select 1)) + t.offset, p.lat, p.lon, p.x, p.y
 from
  #points p cross join
  (select isnull(max(id_point), 0) from ABC with (tablockx)) t(offset);
1
 Аватар для Antykus
0 / 0 / 2
Регистрация: 10.05.2014
Сообщений: 230
13.01.2016, 12:52  [ТС]
invm, вы спасли мою нервную систему от истощения, спасибо вам огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2016, 12:52
Помогаю со студенческими работами здесь

Одновременное добавление 2-х записей.
Можно ли мне Одновременно добавлять 2 записи в связанные таблицы ? У меня есть 1 таблица, в которой: $id p1 p2 .... link И Вторая...

Добавление записей на сервер
Добрый день, есть MS SQL Server. На нём стоит база arhiv. В ней есть таблица User. Первая ячейка в ней ключевая и называется ID_User. Кроме...

Запретить добавление одинаковых записей
Люди хотела уточнить один вопрос есть таблица с данными первичный ключ все дела. Но встал вопрос об запрете добавления записи с одинаковыми...

Добавление записей в поле внешнего ключа
есть таблица сделка CREATE TABLE sdelka_1 ( id_klient INT(10) NOT NULL, kol INT(10) NOT NULL, id_tovar INT(10) NOT NULL, ...

Импорт записей DNS сервера в таблицу SQL
Господа, посоветуйте, как можно импортировать записи DNS сервера в таблицу MS SQL? На ум приходит только экспорт в текстовый файл через...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru