char 列タイプを定義したとします。たとえば、(黒、白、赤、青)のみと言うためにその値を厳密にしたい...
どうやってやるの??
私が知っている限り、これはアクセスで簡単です:P
char 列タイプを定義したとします。たとえば、(黒、白、赤、青)のみと言うためにその値を厳密にしたい...
どうやってやるの??
私が知っている限り、これはアクセスで簡単です:P
許可されている値がほんの少ししかない場合は、CHECK
制約を使用できます。
ALTER TABLE dbo.Your_Table
ADD CONSTRAINT CK_YourTable_YourColumn
CHECK (Your_Column IN ('Black', 'White', 'Red', 'Blue'))
さらに値がある場合は、ルックアップ テーブルとFOREIGN KEY
制約を使用できます。
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)
ルールを使用する必要があります (指摘されたように、ルールは廃止され、代わりに制約を使用する必要があります)、許可する色を含むカラー テーブルへの外部キーを使用する必要があります。
チェック制約は次のように作成できます。
ALTER TABLE MyTable
ADD CONSTRAINT CK_MyTable_ColorType
CHECK (ColorType IN ('Black', 'White', 'Red', 'Blue'))
テーブルを使用する場合は、colorName と ID を使用して「Color」テーブルを作成する必要があります。参照が必要なテーブルでは、「カラー」テーブル ID に外部キーを持つ列を追加する必要があります。
「カラー」テーブルを参照するには、結合を使用する必要があります。
SELECT *
FROM MyTable INNER JOIN
ColorTable ON MyTable.ColorID = ColorTable.ID
更新: Rule の代わりに Constraint を使用すると、古いデータベースでも引き続き Rules を使用できます (2000)。
CREATE RULE Color_Rule
AS
@list IN ('Black', 'White', 'Red', 'Blue')
それが役に立てば幸い
これを行う1つの方法は、別のテーブル「タイプ」を作成し、そこに値を入れることです。Type varchar を持っていたテーブルは、他のテーブルを指す FK TypeID を持つようになりました。
これには追加の結合が必要になりますが、どの文字列がタイプになるかを制御できます。
列にルールが必要です
はい、アクセスは簡単です。