globaltech
Nieuwe gebruiker
- Lid geworden
- 30 apr 2015
- Berichten
- 1
I need help with the following constraint. I'm trying to add a constraint where if one column of the datatype bit has a one then another column in the same table also has to be one. This is what i have so far:
Ik heb hulp nodig met het volgende constraint. Ik probeer om een constrain toe te voegen waar als een column van het datatype bit 1 is dan moet een andere column in dezelfde tabel niet null zijn.
CREATE TABLE tbl_Voorwerp (
Voorwerpnummer NUMERIC(10) NOT NULL,
Titel VARCHAR(30) NOT NULL,
Beschrijving VARCHAR(1000) NOT NULL,
Startprijs NUMERIC(7,2) NOT NULL,
Betalingswijze VARCHAR(9) NOT NULL,
Aantal_keer_bekeken INT NULL,
Betalingsinstructie VARCHAR(200) NULL,
Plaatsnaam VARCHAR(100) NOT NULL,
Land VARCHAR(50) NOT NULL,
Looptijd INT NOT NULL,
LooptijdbeginDag DATE NOT NULL,
LooptijdbeginTijdstip TIME NOT NULL,
Verzendkosten NUMERIC(4,2) NULL,
Verzendinstructies VARCHAR(200) NULL,
Verkopersnaam VARCHAR(20) NOT NULL,
Kopersnaam VARCHAR(20) NULL,
LooptijdeindeDag AS CONVERT(DATE,(DATEADD(DAY, Looptijd, GETDATE()))),
LooptijdeindeTijdstip AS Looptijdbegintijdstip persisted,
VeilingGesloten BIT NOT NULL,
Verkoopprijs NUMERIC(7,2) NULL,
CONSTRAINT PK_Voorwerp PRIMARY KEY (Voorwerpnummer),
CONSTRAINT FK_Voorwerp_Verkoper FOREIGN KEY (Verkopersnaam)
REFERENCES tbl_Verkoper(Gebruikersnaam),
CONSTRAINT FK_Voorwerp_Koper FOREIGN KEY (Kopersnaam)
REFERENCES tbl_Gebruiker (Gebruikersnaam),
--CONSTRAINT chk_voorwerp_looptijdeindedag CHECK (LooptijdeindeDag = DATEADD(DAY, Looptijd, Looptijdbegindag)),
CONSTRAINT chk_voorwerp_looptijdeindetijdstip CHECK ( LooptijdeindeTijdstip = LooptijdbeginTijdstip),
CONSTRAINT chk_VeilingGesloten CHECK (CASE WHEN VeilingGesloten = 1 THEN
CASE Kopersnaam = NOT NULL
ELSE Kopersnaam = NULL
END)
dus in deze tabel als veilinggesloten 1 is dan moet de de column kopersnaam niet null zijn
Ik heb hulp nodig met het volgende constraint. Ik probeer om een constrain toe te voegen waar als een column van het datatype bit 1 is dan moet een andere column in dezelfde tabel niet null zijn.
CREATE TABLE tbl_Voorwerp (
Voorwerpnummer NUMERIC(10) NOT NULL,
Titel VARCHAR(30) NOT NULL,
Beschrijving VARCHAR(1000) NOT NULL,
Startprijs NUMERIC(7,2) NOT NULL,
Betalingswijze VARCHAR(9) NOT NULL,
Aantal_keer_bekeken INT NULL,
Betalingsinstructie VARCHAR(200) NULL,
Plaatsnaam VARCHAR(100) NOT NULL,
Land VARCHAR(50) NOT NULL,
Looptijd INT NOT NULL,
LooptijdbeginDag DATE NOT NULL,
LooptijdbeginTijdstip TIME NOT NULL,
Verzendkosten NUMERIC(4,2) NULL,
Verzendinstructies VARCHAR(200) NULL,
Verkopersnaam VARCHAR(20) NOT NULL,
Kopersnaam VARCHAR(20) NULL,
LooptijdeindeDag AS CONVERT(DATE,(DATEADD(DAY, Looptijd, GETDATE()))),
LooptijdeindeTijdstip AS Looptijdbegintijdstip persisted,
VeilingGesloten BIT NOT NULL,
Verkoopprijs NUMERIC(7,2) NULL,
CONSTRAINT PK_Voorwerp PRIMARY KEY (Voorwerpnummer),
CONSTRAINT FK_Voorwerp_Verkoper FOREIGN KEY (Verkopersnaam)
REFERENCES tbl_Verkoper(Gebruikersnaam),
CONSTRAINT FK_Voorwerp_Koper FOREIGN KEY (Kopersnaam)
REFERENCES tbl_Gebruiker (Gebruikersnaam),
--CONSTRAINT chk_voorwerp_looptijdeindedag CHECK (LooptijdeindeDag = DATEADD(DAY, Looptijd, Looptijdbegindag)),
CONSTRAINT chk_voorwerp_looptijdeindetijdstip CHECK ( LooptijdeindeTijdstip = LooptijdbeginTijdstip),
CONSTRAINT chk_VeilingGesloten CHECK (CASE WHEN VeilingGesloten = 1 THEN
CASE Kopersnaam = NOT NULL
ELSE Kopersnaam = NULL
END)
dus in deze tabel als veilinggesloten 1 is dan moet de de column kopersnaam niet null zijn