我有一个名为events_attendees
的表,其中包含以下列,然后是一些ea_no,c_no,e_no,ea_status。
我想添加一个约束来验证列c_no,e_no的唯一行,其中ea_status = 1.
我们的系统使用状态字段进行删除,因此对于相同的c_no,e_no可能有几个ea_status = 0记录,但只要没有匹配e_no,c_no,ea_status =约束就应该允许插入1.
非常感谢你的帮助!
答案 0 :(得分:0)
将您的表名和列名替换为代码
CREATE TABLE CheckTbl (col1 int, col2 int, col3 int, col4 int);
GO
CREATE FUNCTION CheckFnctn( @col2 int, @col3 int)
RETURNS int
AS
BEGIN
DECLARE @retval int
SELECT @retval = COUNT(*) FROM CheckTbl
where col2=@col2 and col3=@col3 and col4=1
RETURN @retval
END;
GO
ALTER TABLE CheckTbl
ADD CONSTRAINT chkRowCount CHECK (dbo.CheckFnctn(col2,col3) = 1 );
GO