0
如何查看一个表并使用它来检查另一个表的数据完整性?交叉引用表值以允许插入
我有两个SQL表。
,一个是人表
CREATE TABLE PERSON
(
ID INT IDENTITY(10000,1) NOT NULL,
Firstname VARCHAR(15),
Lastname VARCHAR(25) NOT NULL,
Birthdate DATE,
Gender VARCHAR(1),
CHECK (GENDER IN ('M', 'F')),
Street VARCHAR(50),
City VARCHAR(15),
State VARCHAR(2),
CHECK (State IN ('FL','GA','PA')),
Zip INT,
Phone VARCHAR(10),
Employee VARCHAR(1),
CHECK (Employee IN('Y','N')),
Member VARCHAR(1),
CHECK (Member IN('Y','N')),
CHECK (Member IN ('Y') or Employee IN ('Y')),
CONSTRAINT PERSON_PK PRIMARY KEY (ID));
和员工表
CREATE TABLE EMPLOYEE
(
ID INT NOT NULL,
Datehired DATE DEFAULT GETDATE(),
Status VARCHAR(1),
CHECK (Status IN ('F','C')),
Position VARCHAR(25),
EmpType VARCHAR(25),
CONSTRAINT EMPLOYEE_PK PRIMARY KEY (ID),
CONSTRAINT EMPLOYEE_PERSON_FK FOREIGN KEY (ID) REFERENCES PERSON);
比方说,某人是不是雇员。我仍然可以将它们插入到员工表中。
INSERT INTO EMPLOYEE
(ID, Status, Position, EmpType)
VALUES
('10000','C','Teaching Classes','Instructor');
如何防止发生这种情况。
嘿,我试过你说的是什么,它给了我这个错误 消息1764,级别16,状态1,313线 表计算列'员工“雇员”是在“外键约束使用无效'因为它没有被持续。 消息1750,级别16,状态0,行313 无法创建约束或索引。查看以前的错误。 – Kruise