我在设计时态数据库时遇到问题。我需要知道如何确保在商店的任何给定时间范围内我只有一个活动记录。我已经阅读了这个答案,但恐怕我无法理解触发器的工作原理。特别是,我如何将触发器工作到我现有的触发器中,以防止更新记录,而是插入新记录。我真正的问题是,当完成日期为空时,我不知道如何防止 Store 有多个生效日期。(即防止商店的 2 个活动记录)。
这就是我所拥有的,但它允许我为具有不同生效日期的商店插入新记录。
表定义:
/****** Object: Table [PCR].[Z_STORE_TEAM] Script Date: 05/09/2014 13:05:57 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Z_STORE_TEAM]') AND type in (N'U'))
DROP TABLE [Z_STORE_TEAM]
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Z_STORE_TEAM]') AND type in (N'U'))
BEGIN
CREATE TABLE [Z_STORE_TEAM](
[STORENUM] [int] NOT NULL,
[TEAM] [varchar](10) NULL,
[EFFECTIVE] [date] NOT NULL,
[FINISHED] [date] NULL,
PRIMARY KEY CLUSTERED
(
[STORENUM] ASC,
[EFFECTIVE] ASC
)WITH (PAD_INDEX = …
Run Code Online (Sandbox Code Playgroud)