A と B の 2 つのテーブルがあります。構造は次のようになります。
CREATE TABLE A (
w int NOT NULL,
x int NOT NULL,
y int NOT NULL,
CONSTRAINT PK_A PRIMARY KEY (w, x, y)
)
CREATE TABLE B (
w int NOT NULL,
y int NULL,
z int NOT NULL
)
テーブル B に入力された値のセットについて、w と y がテーブル A にあることを確認したい。テーブル B の y 値が null の場合、w がテーブル A にあることだけを確認したい。
いくつかのサンプル データ、挿入、および期待される結果:
Table A
w x y
----------
1 1 1
1 1 2
1 2 1
1 3 2
2 1 1
INSERT INTO B (w, y, z) VALUES (1, 1, 3) -- good
INSERT INTO B (w, y, z) VALUES (1, NULL, 3) -- good
INSERT INTO B (w, y, z) VALUES (1, 1, 4) -- good
INSERT INTO B (w, y, z) VALUES (2, NULL, 3) -- good
INSERT INTO B (w, y, z) VALUES (1, 3, 1) -- fail
INSERT INTO B (w, y, z) VALUES (3, NULL, 1) -- fail
これが機能する方法はありますか?それが機能する場合、私はSQL Server 2000を使用しています。