触发器问题(学习)

qzhjh 2014-08-08 10:03:39
tb1

id 姓名
1001 张三

当插入数据有重复ID的时候提示"ID重复,插入失败",如果没有重复就插入数据,
要怎么写呢?

insert into tb1 values ('101','张三')
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzhjh 2014-08-12
  • 打赏
  • 举报
回复
引用 1 楼 OrchidCat 的回复:
IF OBJECT_ID ('TB_trigger', 'TR') IS NOT NULL
   DROP TRIGGER TB_trigger
GO
CREATE TRIGGER TB_trigger
ON TB
AFTER INSERT
AS 
if exists(select 1 from TB where exists(select 1 from inserted A where A.id = tb.id))
begin 
  RAISERROR ('ID重复,插入失败', 16, 10);
end
GO
------不起作用呢,会插入数据 服务器: 消息 50000,级别 16,状态 10,过程 TB_trigger,行 7 ID重复,插入失败 (所影响的行数为 1 行)
Mr_Nice 2014-08-08
  • 打赏
  • 举报
回复
IF OBJECT_ID ('TB_trigger', 'TR') IS NOT NULL
   DROP TRIGGER TB_trigger
GO
CREATE TRIGGER TB_trigger
ON TB
AFTER INSERT
AS 
if exists(select 1 from TB where exists(select 1 from inserted A where A.id = tb.id))
begin 
  RAISERROR ('ID重复,插入失败', 16, 10);
end
GO
俺是大菠萝 2014-08-08
  • 打赏
  • 举报
回复
非要用触发器么?创建的unique的索引就好了

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧