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

sqlserver 触发器有关问题

2014-01-08 
sqlserver 触发器问题写了一个触发器,当表增删改的时候写入日志表。但是刚才发现如果一次删除一条数据的时

sqlserver 触发器问题
写了一个触发器,当表增删改的时候写入日志表。但是刚才发现如果一次删除一条数据的时候是写入日志表一条数据,但是如果一次删除2条以上的数据,日志表里还是 显示删除了一条数据,怎么破。附触发器代码,求大神搭救,谢谢

create trigger goodMan
on t_good
for insert,delete,update
as
declare @gid int
declare @gname nvarchar(50)
declare @gmancount int

select @gid=gid,@gname=gname,@gmancount=gcount from inserted where gid is not null
begin
if exists(select gid from inserted) and not exists(select gid from deleted)
begin 
insert into t_goodiolog (gid,gname,gmancount,gmankind,gdate) values(@gid,@gname,@gmancount,'insert',GETDATE())
end
end
[解决办法]
试试

create trigger goodMan
on t_good
for insert,delete,update
as
declare @gid int
declare @gname nvarchar(50)
declare @gmancount int

select @gid=gid,@gname=gname,@gmancount=gcount from inserted where gid is not null
begin
if exists(select gid from inserted) and not exists(select gid from deleted)
begin 
insert into t_goodiolog (gid,gname,gmancount,gmankind,gdate)
SELECT @gid,@gname,@gmancount,'insert',GETDATE()
 FROM deleted
end
end

[解决办法]
create trigger goodMan
on t_good
for insert,delete,update
as
declare @gid int
declare @gname nvarchar(50)
declare @gmancount int

--select @gid=gid,@gname=gname,@gmancount=gcount from inserted where gid is not null

begin

if exists(select gid from inserted) and not exists(select gid from deleted)
begin 
insert into t_goodiolog (gid,gname,gmancount,gmankind,gdate) 
select gid,gname,gcount,'insert',GETDATE() from inserted where gid is not null
end

end

热点排行