Как сделать один ключ, который является первичным и внешним в t-sql - PullRequest
1 голос
/ 27 июня 2019

Код - это то, что я пробовал ранее

create table DroppedPatients
(
    PatientKey nchar(15) not null,
    primary key (PatientKey),
    PatientKey nchar(15) not null references Patient(PatientKey)
)

Однако я не знаю, как сделать одну клавишу, как показано на рисунке?

enter image description here

Я очень новичок в SQL, поэтому я не очень старался, кроме обычной ссылки / внешнего ключа

Ответы [ 2 ]

3 голосов
/ 27 июня 2019

У вас есть две ошибки в коде, который вы опубликовали.

Во-первых, вы указали столбец PatientKey дважды - в основном это говорит SQL Server, что вы пытаетесь создать таблицу с двумя столбцами с одинаковым именем - естественно, это невозможно сделать.

Ваша вторая ошибка синтаксическая - вам не хватает некоторых ключевых слов.

Вот пересмотренная версия вашего кода:

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)
)

Обратите внимание, что лучше всегда называть свои ограничения.

0 голосов
/ 27 июня 2019

Да, это возможно - попробуйте запрос ниже, чтобы получить желаемый результат -

create table DroppedPatients
(
    PatientKey nchar(15) not null  primary key  foreign key  references Patient(PatientKey)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...