我不知道你是否成功地完成了这项工作,或者你是否需要它,但自从我从谷歌来到这里(前 3 个结果)我会写下我是如何解决这个问题的。也许它可以帮助将来的某人。
对我来说,这是因为我有2 个外键,但为它们生成了3 个约束。
查看给定表的脚本后:
CREATE TABLE [dbo].[VacationBooking](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[VacationType] [bigint] NOT NULL,
[StartDateTime] [datetime] NOT NULL,
[EndDateTime] [datetime] NOT NULL,
[User] [bigint] NOT NULL,
[Employee] [bigint] NOT NULL,
[Status] [int] NOT NULL CONSTRAINT [DF_VacationBooking_Status] DEFAULT ((0)),
[IsSameDayVacation] [bit] NOT NULL CONSTRAINT [DF_VacationBooking_IsSameDayVacation] DEFAULT ((0)),
[NumberOfHoursAbsent] [decimal](5, 2) NOT NULL CONSTRAINT [DF_VacationBooking_NumberOfHoursAbsent] DEFAULT ((0.00))
CONSTRAINT [PK_VacationBooking] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
-- Constraint 1
ALTER TABLE [dbo].[VacationBooking] WITH CHECK ADD CONSTRAINT [FK_VacationBooking_User] FOREIGN KEY([User])
REFERENCES [dbo].[User] ([Id])
GO
ALTER TABLE [dbo].[VacationBooking] CHECK CONSTRAINT [FK_VacationBooking_User]
GO
-- Constraint 2
ALTER TABLE [dbo].[VacationBooking] WITH CHECK ADD CONSTRAINT [FK_VacationBooking_User1] FOREIGN KEY([Employee])
REFERENCES [dbo].[User] ([Id])
GO
ALTER TABLE [dbo].[VacationBooking] CHECK CONSTRAINT [FK_VacationBooking_User1]
GO
-- Constraint 3
ALTER TABLE [dbo].[VacationBooking] WITH CHECK ADD CONSTRAINT [FK_VacationBooking_User2] FOREIGN KEY([Employee])
REFERENCES [dbo].[User] ([Id])
GO
ALTER TABLE [dbo].[VacationBooking] CHECK CONSTRAINT [FK_VacationBooking_User2]
GO
我需要有 2 个 FKUser
表(一个用于author
,一个用于employee
它所关注的),但应该只有 2 个约束。
我删除后
约束 3
从我的表中,我可以成功地搭建数据库。