Say I defined a char column Type. I want to strict its value to say for example (Black, White, Red, Blue) Only...
How can I do that??
All i know, this is easy in Access :P
If there are just a few permitted values then you can use a CHECK
constraint:
ALTER TABLE dbo.Your_Table
ADD CONSTRAINT CK_YourTable_YourColumn
CHECK (Your_Column IN ('Black', 'White', 'Red', 'Blue'))
If there are more values then you can use a lookup table and a FOREIGN KEY
constraint:
CREATE TABLE dbo.Lookup_Colours (Colour VARCHAR(10))
-- then populate Lookup_Colours with all permitted values
ALTER TABLE dbo.Your_Table
ADD CONSTRAINT FK_YourTable_YourColumn
FOREIGN KEY (Your_Column)
REFERENCES dbo.Lookup_Colours (Colour)
You should either use a Rule (as was pointed out Rules are now deprecated instead constraints should be used) or a foreign key to a Color table containing the Colors you allow.
A Check constraint can be created like this:
ALTER TABLE MyTable
ADD CONSTRAINT CK_MyTable_ColorType
CHECK (ColorType IN ('Black', 'White', 'Red', 'Blue'))
If you want to go with a table, then you should create a 'Color' table with the colorName and an ID. On the table(s) that need the reference you should add a column with the foreign key to the 'Color'-table ID.
To reference the 'Color'-table you have to use a join e.g.
SELECT *
FROM MyTable INNER JOIN
ColorTable ON MyTable.ColorID = ColorTable.ID
Updated: With Constraint instead of Rule older Databases can still use Rules though (2000).
CREATE RULE Color_Rule
AS
@list IN ('Black', 'White', 'Red', 'Blue')
Hope it helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With