CREATE TABLE Calendar (
id_calendar INT IDENTITY(1,1) PRIMARY KEY,year int NOT NULL,month int NULL,day_of_month int NULL,day_of_week int NULL,week_of_year int NULL
);
CREATE TABLE Param(
id_param INT IDENTITY(1,param varchar(30),periode varchar(20),CONSTRAINT check_periode CHECK (periode IN ('Day','Week','Month','Year'))
);
CREATE TABLE Event (
id_calendar INT,id_param INT
);
每当将新行插入Event时,我都要检查它是否符合参数的句点。
如果期间='Day',则 year,month,day_of_month,day_of_week,week_of_year 中的任何一个都不为NULL。
如果periode ='Week',则只有day_of_month和day_of_week应该为NULL,
...
因此,我需要同时加入FK'S
和从那里建立一个CHECK约束。是否可以将 id_calendar 和 id_param 传递给UDF
并从CHECK调用它?
出于性能原因,我不想使用全局查询,而只使用涉及受影响的行及其外键的检查。