sql – 触发以防止插入两列的重复数据
发布时间:2021-01-24 05:30:20 所属栏目:MsSql教程 来源:网络整理
导读:我正在研究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] ) 然后你就会开展业务. (编辑:汕尾站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – Windows 2008R2上SQL 2008R2的推荐页面文件大
- Windows Server 2003与微软系统存在兼容性问题
- sql-server – 如何在不使用.NET的情况下从SQL Server 2008
- sql – ORA-00907缺少右括号问题 – 通过内部插入查询选择顺
- sql-server – 帮助安装SQL Server 2017 – VS Shell安装失
- 如何重组磁盘
- 有容乃大—盈通剑龙G5600 256M显卡满足你需要
- sql的substring函数功能是什么,如何使用?
- dns-prefetch是什么 前端优化:DNS预解析提升页面速度
- 数据库 – magento从1.6.2升级到1.7.0.2 – 数据库库是否会