首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于一个触发器的写法,该如何解决

2012-03-25 
关于一个触发器的写法问题是这样的:有一个表Table1(SNointprimarykey,SNamevarchar(255))我想写一个如下功

关于一个触发器的写法
问题是这样的:
有一个表Table1(SNo   int   primary   key,   SName   varchar(255))
我想写一个如下功能的触发器:
在插入一条语句时如果插入的这条语句已经存在于表中,则放弃插入操作。

请问该怎么写啊??

[解决办法]
create trigger it_Table1 on Table1
instead of insert
as
insert into Table1
select * from inserted
where SNo not in (select SNo from Table1)
[解决办法]
create table Table1(SNo int primary key, SName varchar(255))
GO
create trigger tr_table1 on table1
instead of insert
as
begin
if not exists(select * from inserted , Table1 where inserted.sno=table1.sno)
begin
INSERT Table1 (SNO,SName) SELECT SNO,SNAME FROM INSERTED WHERE not exists(select * from inserted , Table1 where inserted.sno=table1.sno)
END
END

[解决办法]
因为楼主在创建表的时候,已经指定SNo int primary key,即SNo为主键了,所以就不会出现“在插入一条语句时如果插入的这条语句已经存在于表中”的情况。

热点排行
Bad Request.