Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2019, 23:35   #1
AdamWorld
Новичок
Джуниор
 
Регистрация: 13.12.2019
Сообщений: 1
Восклицание Создание тригеров

Создайте таблицу ReceiptArсhive, включающую следующие поля: ФИО_Доктора, ФИО_Клиента, № квитанции, Дата квитанции, Сумма по квитанции, dk – Дата-Время удаления квитанции, cu – Пользователь, удаливший квитанцию.
Напишите триггер, который при удалении записи из таблицы Receipt заполняет таблицу ReceiptArсhive.
Протестируйте работу триггера.


Я сделал, только при удаление ничего не появляется в ней

go
create table ReceiptArсhive(
[ФИО Доктора] nvarchar(50),
[ФИО Клиента] nvarchar(50),
[№ квитанции] int,
[Дата квитанции] date,
[Сумма по квитанции] decimal(18,2),
[Дата-Время удаления] datetime,
[Пользователь] varchar(50))
go

create trigger trReceiptArchive
on Receipt
after delete
as begin
declare @SNPD nvarchar(50), @SNPC nvarchar(50), @NR int, @DateR date, @SR decimal(18,2)
if exists(select * from sysobjects where Name = '#tmp' and xtype = 'U') drop table #tmp
select IdReceipt, Sum(Quantity * Price)as [Sum] into #tmp from Specification group by IdReceipt
declare crI cursor
for select D.[Name] +' '+D.Surname +' '+D.Patronymic as [ФИО Доктора],
C.[Name] +' '+C.Surname +' '+C.Patronymic as [ФИО Клиента],
R.IdReceipt as [№ квитанции],
R.DateReceipt as [Дата квитанции],
T.[Sum] as [Сумма по квитанции]
from Receipt R join Doctor D on R.IdDoctor = D.IdDoctor
join Client C on R.IdClient = C.IdClient
join #tmp T on R.IdReceipt = T.IdReceipt
where R.IdReceipt in (select deleted.IdReceipt from deleted)
open crI
fetch next from crI into @SNPD, @SNPC, @NR, @DateR, @SR
while (@@FETCH_STATUS = 0)
begin
insert into ReceiptArсhive([ФИО Доктора], [ФИО Клиента], [№ квитанции], [Дата квитанции], [Сумма по квитанции], [Дата-Время удаления], [Пользователь]) values(@SNPD, @SNPC, @NR, @DateR, @SR, GETDATE(), USER_NAME())
fetch next from crI into @SNPD, @SNPC, @NR, @DateR, @SR
end
close crI
Deallocate crI
end


----------------
DELETE FROM Receipt
WHERE IdReceipt=25

select * from ReceiptArсhive
AdamWorld вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание DLL C++ Midont Фриланс 4 20.07.2015 01:46
Создание XML JS Nebojitel JavaScript, Ajax 2 18.10.2011 13:20
Создание внутреннего и внешнего серверов. Создание серверов автоматизации. Ann_Sh Помощь студентам 3 09.10.2011 15:53
Создание ОС misher Операционные системы общие вопросы 2 17.07.2010 00:32