sql – 触发以防止插入两列的重复数据
发布时间:2021-01-25 09:06:50 所属栏目:编程 来源:网络整理
导读:我正在研究SQL Server 2008R2,我有以下表 ID Name date 1 XYZ 2010 2 ABC 2011 3 VBL 2010 此刻我想阻止插入,假如我有一个数据固然ID差异但数据存在 ID Name date 4 ABC 2011 请指导我怎样编写此触发器. 办理要领 像这样的对象: CREATE TRIGGER MyTrigger ON
我正在研究SQL Server 2008R2,我有以下表 ID Name date 1 XYZ 2010 2 ABC 2011 3 VBL 2010 此刻我想阻止插入,假如我有一个数据固然ID差异但数据存在 ID Name date 4 ABC 2011 请指导我怎样编写此触发器. 办理要领像这样的对象:CREATE TRIGGER MyTrigger ON dbo.MyTable AFTER INSERT AS if exists ( select * from table t inner join inserted i on i.name=t.name and i.date=t.date and i.id <> t.id) begin rollback RAISERROR ('Duplicate Data',16,1); end go 这只是插入,你也许也想思量更新. 更新 一种更简朴的要领是在表上建设一个独一束缚,这也将逼迫执行更新,并消除对触发器的必要.做就是了: ALTER TABLE [dbo].[TableName] ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED ( [Name],[Date] ) 然后你就会开展营业. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |