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

Откуда:
Сообщений: 11
привет всем!

можно ли сделать в SQL Server следующее...

у меня есть две таблицы : продажа и накладная

create table продажа (
id int not null primary key,
name varchar(20),
kol int,
cena int)

create table накладная (
n_id int primary key identity(1,1),
summa float,
id int not null foreign key references продажа (id))

я вставляю данные в таблицу "продажа" :

insert into продажа
values (1,'printer', 3, 18000),
(2,'note', 2, 100000)

и хочу чтоб в поле summa автоматически вставлялось значение, полученное при умножении двух полей kol и cena, не прибегая к insert в таблицу накладная.

как это можно реализовать и можно ли?
31 мар 12, 21:33    [12345984]     Ответить | Цитировать Сообщить модератору
 Re: вставка данных  [new]
invm
Member

Откуда: Москва
Сообщений: 9826
Если связь 1:1, зачем разнесено на две таблицы?
Если kol и cena int, то почему summa float? И почему float, а не numeric или money?

А задача ваша решается триггером на таблицу "продажа".
31 мар 12, 22:23    [12346127]     Ответить | Цитировать Сообщить модератору
 Re: вставка данных  [new]
tema_m37
Member

Откуда:
Сообщений: 11
create trigger trig_nakl
on накладная
for insert, update
as
begin
declare @suma float, @i int
select @i = id, @suma = п.kol * п.cena
from продажа п
Update накладная
set summa = @suma
where id = @i
end


такой триггер? но ничего не вставляется в накладную
31 мар 12, 23:44    [12346363]     Ответить | Цитировать Сообщить модератору
 Re: вставка данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
tema_m37
такой триггер? но ничего не вставляется в накладную
А вы хоть одну команду вставки наптсали, чтобы туда что-то вставлялось?
31 мар 12, 23:57    [12346385]     Ответить | Цитировать Сообщить модератору
 Re: вставка данных  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
tema_m37
select @i = id, @suma = п.kol * п.cena
from продажа п
В продажа всегда одна запись? Нет?
А чему же тогда будет равна переменная @i?

Триггер никуда не годится - на помойку!
1 апр 12, 17:38    [12347506]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить