Хранимая процедура создана, но когда я пытаюсь вызвать ее, она ничего не вставляет и / или не обновляет.
Это мой код:
use KlantArtikelMathijs
GO
alter procedure SPVerhoogPrijzen
@catcode varchar(32),
@ingangsdatum date
as
begin
declare @artikelnr int;
declare @prijs decimal(8,2);
if(@ingangsdatum < GETDATE())
raiserror('deze datum is in het verleden, kies een andere datum', 16,1)
return
if(@catcode not in (select catcode from artikel))
raiserror('Deze categorie bestaat niet, maak eerst een artikel met deze categorie aan', 16 , 1)
return
declare @counter int = 0
while @counter < (select count(artikelnr) from artikel where catcode = @catcode)
begin
set @artikelnr = (select artikelnr from artikel where catcode = @catcode)
set @prijs = (select sum(prijs*1.1) from artikelprijs where artikelnr = @artikelnr)
update artikelprijs
set einddatum = dateadd(day,-1,@ingangsdatum)
where artikelnr = @artikelnr
insert into artikelprijs (artikelnr, prijs, begindatum, einddatum)
values (@artikelnr, @prijs, @ingangsdatum, '2099-12-31')
set @counter = @counter + 1
if @counter = 3
begin
break
end
end
end
Сначала яПроверяю, больше ли «ingangsdatum» (дата), чем дата, которая уже есть в базе данных (это необходимо).После этого я проверяю, есть ли код категории в базе данных (это тоже необходимо).
Затем я обновляю одну таблицу и вставляю в другую.
Я использую цикл, потому что выбороператор возвращает более 1 записи.
Это моя база данных, с которой я работаю