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

Откуда:
Сообщений: 166
Задача изначально следующая: есть таблица с позициями товаров, для каждой позиции есть количество. Мне нужно в другую таблицу скопировать каждую позицию столько раз, сколько стоит количество в первой таблице. И поскольку данные в первую таблицу попадают как минимум двумя способами, я решил использовать триггер.
Но теперь внутри триггера мне нужно обработать каждую позицию таблицы inserted и уже исходя из того, какое число стоит в поле количества, запускать цикл на копирование позиции во вторую таблицу. На форуме нашел пример с курсором, но, насколько я понял, это не есть гуд. Быть может есть другие варианты решения этой задачи?
22 июн 09, 12:12    [7327394]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
cross join по таблице с 1ой колонкой где хранятся числа от 1 до .... + where

для спящего время бодрствования равносильно сну
22 июн 09, 12:21    [7327466]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
MoRoZoFF
На форуме нашел пример с курсором, но, насколько я понял, это не есть гуд
Странно как-то искали...
Вот, например, без курсора
22 июн 09, 12:52    [7327684]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
MoRoZoFF
Member

Откуда:
Сообщений: 166
то есть вы предлагаете с одной стороны cross join взять нужную запись, а с другой нужное количество записей из какой-либо фиктивной таблицы?
22 июн 09, 13:54    [7328192]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
да, именно это и предлагаю.

для спящего время бодрствования равносильно сну
22 июн 09, 13:56    [7328209]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
MoRoZoFF
Member

Откуда:
Сообщений: 166
всё это, конечно, замечательно, спасибо. но мне всё равно нужен цикл по записям inserted, если я хочу использовать всё это в триггере.
23 июн 09, 08:40    [7331282]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
MoRoZoFF
всё это, конечно, замечательно, спасибо. но мне всё равно нужен цикл по записям inserted, если я хочу использовать всё это в триггере.
А в триггере возможны только циклы?
23 июн 09, 08:59    [7331321]     Ответить | Цитировать Сообщить модератору
 Re: перебор записей в триггере  [new]
MoRoZoFF
Member

Откуда:
Сообщений: 166
тчорт, всё настолько просто))

INSERT INTO dbo.programm 
                      (orderNumber, tovar, block, material, winter, size)
SELECT orderNumber, tovar, block, material, winter, size 
FROM inserted
JOIN master.dbo.spt_values V
ON inserted.quantity>V.number AND V.type='P' 
23 июн 09, 09:18    [7331363]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить