SQL触发器--插入时判断数据是否已存在
2012-03-26 10:53
495 查看
判断插入的人员***号是否已存在,如存在则取消插入,并给出提示。
--***号唯一,但并非主键,主键是ZA0100
create TRIGGER flx_isexist
ON FD01
for INSERT
AS
begin
declare @id varchar(20)
declare @key varchar(64)
select @id=aa0177,@key=ZA0100 from inserted
IF ((select count(*) from FD01 where aa0177 = @id)>1)
begin
delete from fd01 where ZA0100=@key
raiserror ('该***用户已存在!',16,1)
return
end
end
使用事务,可以更简洁,如下:
create TRIGGER flx_isexist
ON FD01
for INSERT
AS
begin
declare @id varchar(20)
select @id=aa0177 from inserted
IF ((select count(*) from FD01 where aa0177 = @id)>1)
begin
rollback tran
raiserror ('该***用户已存在!',16,1)
return
end
end
触发器可以理解为一种特殊的存储过程,区别在于:调用执行还是触发执行。
--***号唯一,但并非主键,主键是ZA0100
create TRIGGER flx_isexist
ON FD01
for INSERT
AS
begin
declare @id varchar(20)
declare @key varchar(64)
select @id=aa0177,@key=ZA0100 from inserted
IF ((select count(*) from FD01 where aa0177 = @id)>1)
begin
delete from fd01 where ZA0100=@key
raiserror ('该***用户已存在!',16,1)
return
end
end
使用事务,可以更简洁,如下:
create TRIGGER flx_isexist
ON FD01
for INSERT
AS
begin
declare @id varchar(20)
select @id=aa0177 from inserted
IF ((select count(*) from FD01 where aa0177 = @id)>1)
begin
rollback tran
raiserror ('该***用户已存在!',16,1)
return
end
end
触发器可以理解为一种特殊的存储过程,区别在于:调用执行还是触发执行。
相关文章推荐
- SQL触发器--插入时判断数据是否已存在
- ado.net PrimaryKey 判断插入数据是否已经存在
- mysql插入前判断数据是否存在
- oracle先判断数据是否存在再插入
- INSERT INTO .. SELECT ... FROM DUAL WHERE.插入数据前判断表中是否已经存在
- Mybatis 实现Mysql批量插入数据,判断数据是否存在
- Oracle触发器实现更新一张表数据时判断另一张表是否存在,存在更新数据,不存在插入数据
- mysql 判断是否已存在及插入表数据 的 简单存储过程
- sqlserver 判断当前数据是否存在 不存在则插入
- oracle插入数据前判断是否存在
- 数据库端防止并发的SQL语句 插入时就判断是否存在
- mysql插入前判断数据是否存在
- 判断SQL数据库、数据表、存储过程、视图、函数是否存在的方法
- 判断数据库、数据表是否存在
- Sql 判断数据是否存在
- MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- 一条sql语句判断数据是否存在
- js使用数组判断提交数据是否存在相同数据
- .net 判断datatable当中是否存在列名和具体数据