我有兩個表,A和B的結構是這樣的:創建值的檢查約束的另一個表與空
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值是空的,我只是想確保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。
'如果表B中的y值爲空,我只想確保y在表A中。沒有得到這個聲明!如果B中的y值爲null,那麼表A中的'y'值應該是多少? – Vikdor
謝謝,你爲我發現了一個錯字。應該是,如果表B中的y爲空,我想檢查以確保**'w'**在表A中。 – Dave
除非我誤解了某些東西,這不僅僅是兩個FK限制嗎? 'B.W - > A.W'和'B.Y - > A.Y'? –