代码是我之前尝试过的
create table DroppedPatients
(
PatientKey nchar(15) not null,
primary key (PatientKey),
PatientKey nchar(15) not null references Patient(PatientKey)
)
但是,我不知道如何如图所示进行单个键操作?
我对SQL还是很陌生,所以除了正常的引用/外键之外,我没有做太多尝试
答案 0 :(得分:3)
您在发布的代码中有两个错误。
第一个是您已经两次指定了PatientKey
列-基本上是告诉SQL Server您正在尝试创建一个包含两个具有相同名称的列的表-自然是不可能的。 / p>
您的第二个错误是语法错误-您缺少一些关键字。
这是您代码的修订版:
CREATE TABLE DroppedPatients
(
PatientKey NCHAR(15) NOT NULL,
DateDropped DATETIME2 NOT NULL CONSTRAINT DF_DroppedPatients_DateDropped DEFAULT SYSDATETIME(),
ReasonDropped NVARCHAR(200) NULL,
CONSTRAINT PK_DroppedPatients PRIMARY KEY (PatientKey),
CONSTRAINT FK_DroppedPatients_Patient FOREIGN KEY (PatientKey) REFERENCES Patient(PatientKey)
)
请注意,最佳做法是始终命名约束。
答案 1 :(得分:0)
是可能的-尝试在下面的查询中获得所需的结果-
create table DroppedPatients
(
PatientKey nchar(15) not null primary key foreign key references Patient(PatientKey)
)