Hallo, voor mijn school ben ik bezig om een database te bouwen voor een veilingsite.
Nu heb ik een functie gemaakt die controleert of het nieuwe bod groter is dan het vorige bod en er moet een bepaalde grote tussen zitten, deze functie werkt:
CREATE function bodverhoging (@nieuwbod numeric(19,2), @vorigbod numeric(19,2))
RETURNS int
AS BEGIN
DECLARE @bool INT
SELECT @bool = CASE
WHEN @vorigbod >= 1 and @vorigbod < 50 and @nieuwbod - @vorigbod >= 0.5 THEN 1
WHEN @vorigbod >= 50 and @vorigbod < 500 and @nieuwbod - @vorigbod >= 1 THEN 1
WHEN @vorigbod >= 500 and @vorigbod < 1000 and @nieuwbod - @vorigbod >= 5 THEN 1
WHEN @vorigbod >= 1000 and @vorigbod < 5000 and @nieuwbod - @vorigbod >= 10 THEN 1
WHEN @vorigbod >= 5000 and @nieuwbod - @vorigbod >= 50 THEN 1
ELSE 0 END;
RETURN @bool
END
Nu wil ik een check uitvoeren met de volgende code waarin #euro het nieuwe bod bevat:
alter table Bod
add constraint chk_bodverhoging check (dbo.bodverhoging(#euro, dbo.Bieding(voorwerpnummer)) = 1)
Nu zou dit naar mijn idee moeten werken maar het houdt juist alles tegen
dit heb ik gebruikt als test
INSERT INTO [dbo].[Bod] ([#euro] ,[datum] ,[gebruikersnaam] ,[tijdsaanduiding] ,[voorwerpnummer])
VALUES (640, GETDATE(), 'Harry31', GETDATE() , 124)
Ik weet er geen raad meer mee en zit al een halve dag erop vast
Nu heb ik een functie gemaakt die controleert of het nieuwe bod groter is dan het vorige bod en er moet een bepaalde grote tussen zitten, deze functie werkt:
CREATE function bodverhoging (@nieuwbod numeric(19,2), @vorigbod numeric(19,2))
RETURNS int
AS BEGIN
DECLARE @bool INT
SELECT @bool = CASE
WHEN @vorigbod >= 1 and @vorigbod < 50 and @nieuwbod - @vorigbod >= 0.5 THEN 1
WHEN @vorigbod >= 50 and @vorigbod < 500 and @nieuwbod - @vorigbod >= 1 THEN 1
WHEN @vorigbod >= 500 and @vorigbod < 1000 and @nieuwbod - @vorigbod >= 5 THEN 1
WHEN @vorigbod >= 1000 and @vorigbod < 5000 and @nieuwbod - @vorigbod >= 10 THEN 1
WHEN @vorigbod >= 5000 and @nieuwbod - @vorigbod >= 50 THEN 1
ELSE 0 END;
RETURN @bool
END
Nu wil ik een check uitvoeren met de volgende code waarin #euro het nieuwe bod bevat:
alter table Bod
add constraint chk_bodverhoging check (dbo.bodverhoging(#euro, dbo.Bieding(voorwerpnummer)) = 1)
Nu zou dit naar mijn idee moeten werken maar het houdt juist alles tegen
dit heb ik gebruikt als test
INSERT INTO [dbo].[Bod] ([#euro] ,[datum] ,[gebruikersnaam] ,[tijdsaanduiding] ,[voorwerpnummer])
VALUES (640, GETDATE(), 'Harry31', GETDATE() , 124)
Ik weet er geen raad meer mee en zit al een halve dag erop vast
