SQL 触发器 保持唯一的怎么实现啊?~
有个表table1有 A,b,c 三个字段当我插入一个记录
1 张三 24
如果再插入一条B,C 字段还是 张三 和 24
那么直接return
用insert触发器怎么实现~求教
--------------------编程问答-------------------- --------------------编程问答-------------------- caret TRIGGER [dbo].[tr_tb_table1_Add]
ON [dbo].[tb_table1]
for insert
as
declare @id int
select @id=id from inserted
insert into --------------------编程问答-------------------- ALTER TRIGGER [dbo].[Table1trg]
ON [dbo].[table1]
FOR insert
AS
SET NOCOUNT ON
declare @id int
select @id=id from inserted
IF EXISTS ( SELECT 1 FROM table1 WHERE a=@a)
BEGIN
ROLLBACK TRAN
RAISERROR('不能插入已经存在记录!',18,18)
END --------------------编程问答--------------------
差不多了,楼主再改一下吧 --------------------编程问答--------------------
嗯 就这样吧 --------------------编程问答-------------------- caret trigger tableTr ON [dbo].[tb_table1] after insert
as
delete table where id in( select max(id) from table) --------------------编程问答-------------------- create trigger tableTr on table after insert
as
delete table where id in( select max(id) from table)
上面打错了
--------------------编程问答-------------------- ALTER TRIGGER [dbo].[Table1trg]
ON [dbo].[table1]
FOR insert
AS
BEGIN
INSERT TABLE1 SELECT B,C FROM INSERTED I
WHERE NOT EXISTS(SELECT 1 FROM TABLE1 WHERE B=T.B AND C=T.C)
END
--直接插入不存在上的记录就可以了,抛错并不好 --------------------编程问答-------------------- = =题目看错 设个唯一约束 用事务来处理 插入相同内容就会 事务回滚 --------------------编程问答--------------------
ALTER TRIGGER [dbo].[Table1trg]
ON [dbo].[table1]
FOR insert
AS
BEGIN
INSERT TABLE1 SELECT B,C FROM INSERTED I
WHERE NOT EXISTS(SELECT 1 FROM TABLE1 WHERE B=I.B AND C=I.C)
END
补充:.NET技术 , ASP.NET