【发布时间】:2022-06-10 20:37:22
【问题描述】:
我有这两张表:
CREATE TABLE Student
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWID(),
UserId uniqueidentifier REFERENCES [User] (Id), --associated user
FirstName nvarchar(50) NOT NULL,
DisplayName nvarchar(30),
LastName nvarchar(30) NOT NULL,
Gender int,
BirthDate date,
);
CREATE TABLE Teacher
(
Id uniqueidentifier NOT NULL PRIMARY KEY DEFAULT NEWID(),
FirstName nvarchar(50),
LastName nvarchar(50),
DisplayName nvarchar(50),
Abbreviation nvarchar(10) NOT NULL UNIQUE,
UserId uniqueidentifier REFERENCES [User] (Id), --associated user
);
为了确保User 只能关联两个人,我想创建一个视图Person,显示来自Teacher 和Student 的所有行,以及其所有字段,还有一点表明它是学生还是老师。然后我会在 Person 上添加一个 UNIQUE INDEX,以确保其 UserId 列中的唯一性。
我尝试了很多东西,比如加入,APPLY,UNION;但我无法让它工作
【问题讨论】:
-
包括这些尝试,解释为什么它们不起作用。
UNION (ALL)似乎是你想要的。
标签: sql sql-server tsql