Вы можете сделать это, однако, это плохой дизайн.
Я бы предложил использовать EmployeeId в качестве PK на таблице сотрудников и EmployeeId в качестве внешнего ключа на таблице Salary, при этом таблица Salary имеет свой собственный PK (наиболее вероятно SalaryId).
Также поле [Имя], которое я бы лично избегал, поскольку «Имя» - зарезервированное слово в SQL.
CREATE TABLE dbo.Employee
(
EmployeeId BIGINT IDENTITY(1,1)
,EmployeeName VARCHAR(20) NOT NULL
,CONSTRAINT PK_Emp PRIMARY KEY (EmployeeId)
);
GO
CREATE TABLE dbo.Salary
(
SalaryId BIGINT IDENTITY(1,1)
,EmployeeId BIGINT NOT NULL
,Salary INT NOT NULL
,CONSTRAINT PK_Sal PRIMARY KEY (SalaryId)
,CONSTRAINT FK_EmpSal FOREIGN KEY (EmployeeId)
REFERENCES Employee(EmployeeId)
);
GO
С учетом всего вышесказанного, я думаю, что нужно немного больше подумать о структуре БД, и вам, скорее всего, следует в итоге получить 3 таблицы. Вполне вероятно, что у многих сотрудников будет одинаковая зарплата, скажем, 5 сотрудников на 40 000, 3 на 50 000 и т. Д.
Вы в конечном итоге будете хранить одно и то же значение зарплаты несколько раз.
Лучший способ - сохранить это значение один раз и создать третью таблицу, которая связывает сотрудника с заработной платой (в данном случае я назвал это [Заработок]).
С этой структурой зарплата, скажем, 40000 хранится 1 раз в БД, и вы можете связать с ней employeeId несколько раз.
CREATE TABLE dbo.Employee
(
Id BIGINT IDENTITY(1,1)
,EmployeeName VARCHAR(20) NOT NULL
,CONSTRAINT PK_Emp PRIMARY KEY (Id)
);
GO
CREATE TABLE dbo.Salary
(
Id BIGINT IDENTITY(1,1)
,Salary INT NOT NULL
,CONSTRAINT PK_Sal PRIMARY KEY (Id)
);
GO
CREATE TABLE dbo.Earnings
(
Id BIGINT IDENTITY(1,1)
,EmployeeId BIGINT NOT NULL
,SalaryId BIGINT NOT NULL
,CONSTRAINT PK_Ear PRIMARY KEY (Id)
,CONSTRAINT FK_EmpEar FOREIGN KEY (EmployeeId)
REFERENCES Employee(Id)
,CONSTRAINT FK_SalEar FOREIGN KEY (SalaryId)
REFERENCES Salary(Id)
);
GO