level 1
把这个字段设置为主键,设置唯一约束,写存储过程进行校验,用 trigger 等等都可以
用Instead of 在更新之前检查一下表中是否已存在该号码记录。下面是在为表进行真正插入动作之前的触发器示例:
CREATE trigger trigger_CheckPhone
on tablename
instead of insert
as
BEGIN
DECLARE @isExists VARCHAR(20)
SET @isExists=''
SELECT @isExists=PhoneNo from Inserted
if LEN(@isExists)>0
BEGIN
PRINT '存在'
END
ELSE
BEGIN
PRINT '不存在'
END
end
2018年07月09日 04点07分
3
level 1
个人推荐使用存储过程进行校验,因为这样可以集中sql,在需要调用的时候进行调用,灵活且方便维护。
其他方式都有一定的缺陷:
约束:属于强制性的约束,不符合约束则会直接抛出异常
触发器:频繁操作有一定的性能损耗
2018年07月09日 04点07分
4