SQL SERVER FK和约束条件
问题描述:
我正在使用SQL SERVER 2000,并且我有用于创建表的代码。我的表有外键,我希望添加一个约束。 我的问题是:我必须定义约束和外键?或者只是其中的一个足够?SQL SERVER FK和约束条件
CREATE TABLE controls
(
id INT IDENTITY(1,1) PRIMARY KEY,
description VARCHAR(2000),
date DATETIME,
result VARCHAR(255),
clients_id INT FOREIGN KEY REFERENCES clients(id),
profesionals_id INT FOREIGN KEY REFERENCES profesionals(id),
CONSTRAINT FK_CLIENTS FOREIGN KEY (clients_id) REFERENCES clients(id)
);
最后2行,FK定义和约束,它是多余的?
答
最后一行
CONSTRAINT FK_CLIENTS FOREIGN KEY (clients_id) REFERENCES clients(id)
等价于以下client_ids
的iniline定义:
FOREIGN KEY REFERENCES clients(id)
两者之一应该被删除。
我通常会建议保留'CONSTRAINT'变体并删除内联声明;内联变体仍然给它一个名字,但它是完全不可预知的,如果您以后需要编写需要(暂时)删除约束的脚本,那么这会造成不好的时期。 – 2015-02-05 15:53:44