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

Откуда:
Сообщений: 272
Подскажи как получить старое и новое значение? Пишу так

CREATE TRIGGER [dbo].[Trg_Measurements] ON  [dbo].[Measurements] AFTER UPDATE AS 
BEGIN
 SET NOCOUNT ON;
   UPDATE Waybills SET Measurement =new.id  WHERE Measurement = Old.Measurement;
END


что подставить вместо new и old?
6 ноя 13, 14:58    [15084953]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
kalimba
Member

Откуда:
Сообщений: 297
Tanya_0306,

inserted и deleted соотвественно
6 ноя 13, 15:00    [15084965]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Tanya_0306
что подставить вместо new и old?

Вы пытаетесь при помощи триггера реализовать foreign key for update cascade, я угадал?
6 ноя 13, 15:13    [15085090]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
Гость333,

Да
6 ноя 13, 15:14    [15085111]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Tanya_0306,

Но зачем? Почему не устроил foreign key?
6 ноя 13, 15:22    [15085186]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
Гость333,

Есть таблица
1. Номенклатура (Ид, Наименвоание, Ед.измерения)
2. Ед.Измерения (Ид, Наименование)
3. Накладная ( ...., Номенклатура, Ед.Измерения )

В таблице Накладная есть и Номенклатура и Ед.Измерения - и если поставить каскадное обноление и удаление - получается цикл и SQL не дает.
А поле Ед.Измерения должно быть в Накладной, его значение может не совпадать с тем что стоит по этой же номенклатуре в таблице Номенклатура.
Как быть????
Таких таблиц где одновременно есть и Номенклатура и Ед.измерения у меня несколько. Вот ищу выход в триггере ......
6 ноя 13, 15:31    [15085302]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
А поле Ед.Измерения должно быть в Накладной, его значение может не совпадать с тем что стоит по этой же номенклатуре в таблице Номенклатура.
Как быть????


Убрать поле "Единица измерения" из накладной.
6 ноя 13, 15:35    [15085341]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

нельзя его оттуда убрать.
В таблице Номенклатура Ед.Измерения -это то что будет подставлено по умолчанию для новой строки в таблице Накладная.

А дальше пользователь может оставить или изменить значение.
6 ноя 13, 15:48    [15085465]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tanya_0306
нельзя его оттуда убрать.
В таблице Номенклатура Ед.Измерения -это то что будет подставлено по умолчанию для новой строки в таблице Накладная.

А дальше пользователь может оставить или изменить значение.

если у вас "сгущенка" продается вагонами, ящиками и банками, то должно быть 3 номенклатуры на "сгущенку" - по одной на каждую единицу измерения
И пользователь не должен вводить никакую ед.измерения в накладной
6 ноя 13, 15:51    [15085488]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
Glory,

Не нужно мне 3 номенклатуры. Номенклатура 1. И в таблице Номенклатура указана можно сказать базовая ее единица измерения, в этой единицы будут и расчеты вестись. А в накладной есть вес и пользователь указывает какая Номенклатура, потом вес и потом единицы Измерения данного веса. Надеюсь не запутала ....
Вообщем никак нельзя удалить ед.измерения из Накладной ....
6 ноя 13, 16:01    [15085573]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
pkarklin,

нельзя его оттуда убрать.
В таблице Номенклатура Ед.Измерения -это то что будет подставлено по умолчанию для новой строки в таблице Накладная.

А дальше пользователь может оставить или изменить значение.


У одного SKU может быть только одна единица измерения, ибо Песок сахарный в фасовке по 800 грамм, это не тоже самое, что песок сахарный в фасовке по 5 кг.
6 ноя 13, 16:10    [15085639]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

а просто песок сахарный.
И его первый раз в накладной его 800 гр.
второй раз в накладной его 5 кг

А общий вес поступил 5,8 кг. Мне надо чтоб вот так можно было посчитать :)
6 ноя 13, 16:15    [15085687]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
потом вес


Вес? На какой планете Солнечной системы?
6 ноя 13, 16:15    [15085691]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

В ТАБЛИЦЕ Накладной
номер накладной
номенклатура
брутто
тара
нетто
ед.измерения.

Что не так?
6 ноя 13, 16:16    [15085701]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
а просто песок сахарный.
И его первый раз в накладной его 800 гр.
второй раз в накладной его 5 кг


Не... Первый раз его один пакет, а второй раз один мешок. Что Вы с чем будете складывать?


Tanya_0306
А общий вес поступил 5,8 кг. Мне надо чтоб вот так можно было посчитать :)


Сколько всего поступило сахарного песка? Ведите таблицу коэффициентов приведения каждого SKU к определенной единице измерения.

ЗЫ. Что-то куда-то не туда Вы копаете...
6 ноя 13, 16:18    [15085723]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
В ТАБЛИЦЕ Накладной
номер накладной
номенклатура
брутто
тара
нетто
ед.измерения.
Что не так?


У Вас в накладной м.б. только одна номенклатура с одной единицей измерения?
6 ноя 13, 16:22    [15085765]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

в одной накладной может быть одна номенклатура с разными единицами измерения.
6 ноя 13, 16:30    [15085833]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
в одной накладной может быть одна номенклатура с разными единицами измерения.


Отличной от единицы измерения самой номенклатуры?
6 ноя 13, 16:37    [15085897]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

Да. может совпадать а может и отличаться
6 ноя 13, 16:41    [15085931]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
Да. может совпадать а может и отличаться


Приведите пример.
6 ноя 13, 16:43    [15085951]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

пришло зерно в машине - ед.измерения в накладной указали кг.
пришло зерно в следующей машине оно в мешках. (Вес в мешке будет переведен в кг по формуле)

А всего то накладной будем считать в кг, так как указана в таблице Номенклатура поле ед.измерения Кг.
6 ноя 13, 17:20    [15086240]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
пришло зерно в машине - ед.измерения в накладной указали кг.

и
автор
пришло зерно в следующей машине оно в мешках. (Вес в мешке будет переведен в кг по формуле)


Это разная номенклатура. Про таблицу коэффициентов пересчета в базовую (или прочие) единицы измерения я уже говорил.
6 ноя 13, 17:23    [15086264]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

если потом это зерно ссыпят в одну кучу. - это тоже разная номенклатура??
Сахар не важно в какой таре пришел или в кг и мешках он будет хранится в одном месте
И зерно тоже.
И надо сказать сколько.
И потом отгружать его будут возможно в другой таре.

Получается пришло 900 кг
пришло 1 мешок ( в пересчете 100 кг к примеру)

Итого имеем 1000 кг.

Отгрузили 500 кг.

Итого у нас на складе лежит 500 кг одной номнклатуры
6 ноя 13, 17:29    [15086301]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Tanya_0306
если потом это зерно ссыпят в одну кучу. - это тоже разная номенклатура??
Сахар не важно в какой таре пришел или в кг и мешках он будет хранится в одном месте
И зерно тоже.
И надо сказать сколько.
И потом отгружать его будут возможно в другой таре.

Получается пришло 900 кг
пришло 1 мешок ( в пересчете 100 кг к примеру)

Итого имеем 1000 кг.

Отгрузили 500 кг.

Итого у нас на складе лежит 500 кг одной номнклатуры


Сколько у вас сахара или зерна на складе в разной фасовке Вы скажете через ту самую таблицу коэффициентов пересчета. А процесс высыпания зерна из мешков принято называть изменением номенклатуры, ибо, например, у вас было 20 мешков сахара по 50 кг, а после фасовки стало 200 мешков по 5 кг. Но как было 1000 кг сахара, так и осталось, если не учитывать потери при фасовке.
6 ноя 13, 17:38    [15086354]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при создании триггера  [new]
Tanya_0306
Member

Откуда:
Сообщений: 272
pkarklin,

а как в триггере правильно записать ? old и new ?
6 ноя 13, 17:50    [15086457]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить