Trying is the first step towards faillure...
Als het juist wel moet, dan kan je gewoon gebruik maken van een Foreign Key.
Anders zou je gebruik kunnen maken van een trigger ('before insert on medewerker') maar ik weet niet zeker of dat die bestaan in mssql (die bestaan dus)
[ Voor 12% gewijzigd door thomaske op 12-12-2002 10:14 ]
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
Anders omschreven:
Er wordt van een Rule gezegd dat het over meerdere kolommen en tabellen gezet kan worden. Is dit ook met een check constraint het geval is dan mijn vraag. Dat het over meerdere kolommen binnen een tabel kan weet ik wel maar of ie ook buiten de tabel andere tabellen kan checken is voor mij nog de vraag.
Er worden constant voorbeelden gegeven van bepaalde BETWEEN values in een veld, dat is allemaal duidelijk maar kan een Rule of een Check constraint ook kijken in een andere kolom in een andere tabel of daar een bepaalde waarde in staat en aan de hand daarvan een true of false waarde teruggeven?
Trying is the first step towards faillure...
naar mijn weten kan een CHECK constraint alleen maar de waardes van de tabel zelf checken, wanneer je dus wil checken met data uit een andere tabel, moet je een andere oplossing zoeken.
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
Trying is the first step towards faillure...
But I don't care, I'm in a hurry going nowhere
Helaas.. toch nietOblii schreef op 12 december 2002 @ 11:06:
Volgens mij kan je prima komplete select queries in je CHECK zetten
disclaimer;The condition of a CHECK constraint can refer to any column in the table, but it cannot refer to columns of other tables. CHECK constraint conditions cannot contain the following constructs:
queries to refer to values in other rows
• calls to the functions SYSDATE, UID, USER, or USERENV
• the pseudocolumns CURRVAL, NEXTVAL, LEVEL, or ROWNUM
• date constants that are not fully specified
komt uit de oracle documentatie, maar denk niet dat deze veel verschilt van mssql
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
Door wie? Volgens mij niet door Microsoft._.Luke._ schreef op 12 december 2002 @ 10:17:
Er wordt van een Rule gezegd dat het over meerdere kolommen en tabellen gezet kan worden.
Verwijderd
Lezen is ook een vak.
Volgens mijn weten zijn triggers echter de enige optie. Ik heb thuis nog een leuk boek hierover. Ik zal wel even checken wat ze daar er over zeggen.
[ Voor 75% gewijzigd door Verwijderd op 12-12-2002 12:50 ]
thomaske schreef op 12 december 2002 @ 10:11:
[..]
Anders zou je gebruik kunnen maken van een trigger ('before insert on medewerker')
_.Luke._ schreef op 12 december 2002 @ 10:17:
jah Insert triggers bestaan wel. Maar is niet de bedoeling. Eigenlijk wil ik gewoon weten wat de mogelijk- en onmogelijkheden van check constraints en rules zijn...
Verwijderd schreef op 12 december 2002 @ 12:30:
Kun je niet een trigger gebruiken?
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
Verwijderd
Check constraints kunnen over meerdere kolommen binnen dezelfde tabel maar hebben alleen toegang tot de huidige rij.
Rules worden aangeraden om alleen te gebruiken voor backward compatibility. Rules zijn hetzelfde als CHECK constraints met uitzondering dat ze alleen op 1 kolom toepassing kunnen hebben.
Triggers zijn het meest krachtig (en hebben de grootste performance hit