Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вставка значений из одной таблицы в другую / 8 сообщений из 8, страница 1 из 1
01.08.2019, 09:49
    #39843865
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
Здравствуйте! Задача создать запрос в триггере, который добавил бы запись в таблицу goods_stocks(остатки товаров) при добавлении записи в таблицу purch_goods(закупка товаров). Таблицы связаны один к одному, поля в них естественно отличаются.
Перед вставкой строки нужно проверить не существует ли запись с таким же good_id (purch_goods.good_id = goods_stocks.good_id). Если да, то изменить количество товара. Если нет - вставить строку с товаром good_id,qty,qty (нужно одно и то же количество вставить в два поля: остаток , доступный остаток)
Пока я смог написать только так, но код ошибочный . Дальше не могу сообразить. Помогите, пожалуйста.

CREATE TRIGGER trMatcingStocksOnInsertPG
ON purch_goods
FOR INSERT
AS
IF @@ROWCOUNT = 0
RETURN
SET NOCOUNT ON
INSERT INTO goods_stocks (good_id, stock,available)
SELECT good_id,qty,qty
FROM purch_goods
WHERE purch_goods.good_id = goods_stocks.good_id
...
Рейтинг: 0 / 0
01.08.2019, 10:33
    #39843895
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
А сразу перед вставкой проверить и вставить нужное - нельзя?
И триггер не понадобится.
...
Рейтинг: 0 / 0
01.08.2019, 12:11
    #39843993
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
uaggster,

такие задачи обычно дают в качестве тестов. Тема была актуальна эдак в 80-х годах, когда данные вносили из консоли и не было ХП.
...
Рейтинг: 0 / 0
01.08.2019, 12:13
    #39843994
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
jeanssp,

переписать на merge и хоть в триггере, хоть без
...
Рейтинг: 0 / 0
01.08.2019, 12:31
    #39844005
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
jeansspкод ошибочный . Дальше не могу сообразить.1) Для вставки с условием, когда записи нет, добавьте not exists в условие where
2) Для обновления поставьте перед insert команду update
Владислав Колосовтакие задачи обычно дают в качестве тестов.Ну как, у человенка 11 лет опыта в SQL Server :-)
...
Рейтинг: 0 / 0
01.08.2019, 13:38
    #39844067
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
alexeyvgjeansspкод ошибочный . Дальше не могу сообразить.1) Для вставки с условием, когда записи нет, добавьте not exists в условие where
2) Для обновления поставьте перед insert команду update
Владислав Колосовтакие задачи обычно дают в качестве тестов.Ну как, у человенка 11 лет опыта в SQL Server :-)
Да я все эти 11 лет в аксессе мышкой запросы делал. А теперь вот хочу перейти с аксесса на sql server . Какой нибудь примерчик дайте пожалуйста.
...
Рейтинг: 0 / 0
01.08.2019, 15:52
    #39844192
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
...
Рейтинг: 0 / 0
01.08.2019, 18:19
    #39844271
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка значений из одной таблицы в другую
jeansspКакой нибудь примерчик дайте пожалуйста.Пример чего нужен?

Примеры триггеров можно посмотреть в хелпе https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-trigger-transact-sql
Обратите внимание на псевдо-таблицы inserted, deleted. А то получается, что вы в своём триггере вставляете данные из всей таблицы.

По логике, как я уже сказал, в SQL проверку при вставке можно сделать с помощью NOT EXISTS
Пример NOT EXISTS можно посмотреть в примерах EXISTS: https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/exists-transact-sql
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вставка значений из одной таблицы в другую / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]