Sql 如何在表中插入前验证记录

Sql 如何在表中插入前验证记录,sql,sql-server,Sql,Sql Server,我有两张桌子。在表2中,我有表1中的外键 当我在表2中插入一条记录时,外键(IDFK)的值为1,那么我需要为国家/地区设置值,如果IDFK的值为2,那么我需要设置值日期和截止日期。列Country、Date和DueDate可为空。但根据IDFK的值,它们必须具有一些值 不使用insert语句的逻辑是否可以保留此规则 表1: Id Name ============== 1 Europe 2 Australia Id IDFK Name Country Dat

我有两张桌子。在表2中,我有表1中的外键

当我在表2中插入一条记录时,外键(IDFK)的值为1,那么我需要为国家/地区设置值,如果IDFK的值为2,那么我需要设置值日期和截止日期。列Country、Date和DueDate可为空。但根据IDFK的值,它们必须具有一些值

不使用insert语句的逻辑是否可以保留此规则

表1

Id  Name
==============
1   Europe
2   Australia
Id  IDFK    Name        Country   Date          DueDate
===========================================================
1   1       Package1    France    NULL          NULL
2   1       Package2    Spain     NULL          NULL
3   2       Package3    NULL      2016-02-21    2016-03-24 
4   2       Package4    NULL      2016-02-24    2016-03-24 
表2

Id  Name
==============
1   Europe
2   Australia
Id  IDFK    Name        Country   Date          DueDate
===========================================================
1   1       Package1    France    NULL          NULL
2   1       Package2    Spain     NULL          NULL
3   2       Package3    NULL      2016-02-21    2016-03-24 
4   2       Package4    NULL      2016-02-24    2016-03-24 

我想你可以为这张支票在insert上写一个触发器。使用而不是插入,它将为您提供帮助。我建议在应用程序端构建此验证或开发用于附加数据的存储过程。这不是审计或低级控制(有效电子邮件或smth)-这是高级“业务”知识。