У меня есть отношение многие ко многим между двумя таблицами, Users
и Projects
.
Таблица, которая соединяет эти две таблицы, называется ProjectsUsers
.
Здесьописание таблиц и их взаимосвязей:
CREATE TABLE "Users"
(
Email VARCHAR(320) COLLATE SQL_Latin1_General_CP1_CI_AS PRIMARY KEY CHECK(LEN(Email) >= 3),
--More....
);
CREATE TABLE "Projects"
(
ProjectID INT PRIMARY KEY IDENTITY,
--More....
);
CREATE TABLE "ProjectsUsers"
(
UsersEmail VARCHAR(320) COLLATE SQL_Latin1_General_CP1_CI_AS CHECK(LEN(UsersEmail) >= 3) NOT NULL,
ProjectsID INT NOT NULL,
CONSTRAINT ProjectsUsers_PK PRIMARY KEY (UsersEmail, ProjectsID),
CONSTRAINT ProjectsID_FK FOREIGN KEY (ProjectsID) REFERENCES Projects (ProjectID)
ON DELETE CASCADE ON UPDATE CASCADE ,
CONSTRAINT UsersEmail_FK FOREIGN KEY (UsersEmail) REFERENCES Users(Email)
ON DELETE CASCADE ON UPDATE CASCADE
);
Я сейчас пытаюсь создать хранимую процедуру, которая будет вставлять новый проект в таблицу Projects
. После добавления проекта я хочу создать ссылку на него в таблице ProjectsUsers
. Проблема в том, что у меня нет никакого способа узнать, какой идентификатор проекта я только что создал - таким образом, я не могу знать, какой идентификатор мне нужно вставить в ProjectsUsers
.
Так что, если мойхранимая процедура была примерно такой:
INSERT INTO Projects (Project, CreationDate, ProjectName)
VALUES (@project, GETDATE(), @email);
INSERT INTO ProjectsUsers VALUES (@email, ???)
Как я могу получить идентификатор?