登录触发器,增加回滚事件后,数据不能写入表中。
时间:2011-12-28
来源:互联网
use master
go
CREATE TRIGGER Login_Check_Trigger
ON all server
AFTER LOGoN
AS
BEGIN
DECLARE @ip varchar(20)
DECLARE @ipmac varchar(20)
DECLARE @computer varchar(20)
DECLARE @count INT
DECLARE @iptime datetime
SELECT @ipmac = net_address,@computer = hostname,@iptime = login_time,@ip = client_net_address FROM sys.dm_exec_connections,sys.sysprocesses where sys.dm_exec_connections.session_id = sys.sysprocesses.spid
select @count = count(computer) from ipmac where computer = @computer and ipmac = @ipmac and delt<>'1'
if(@count < 1)
begin
INSERT INTO ip_er(ip,ipmac,computer,iptime)
VALUES (@ip,@ipmac,@computer,@iptime);
rollback tran
end
END
GO
在判断计数是否大于1,后的语句中,加了回滚事件“rollback tran”后,数据不写插入到表中。各位帮我看下,这是怎么回事。
作者: aqbj_28 发布时间: 2011-12-28
作者: ssp2009 发布时间: 2011-12-28
作者: fredrickhu 发布时间: 2011-12-28
if(@count < 1)
begin
...
end
作者: ap0405140 发布时间: 2011-12-28
SQL code
SELECT @ipmac = net_address,@computer = hostname,@iptime = login_time,@ip = client_net_address FROM sys.dm_exec_connections,sys.sysprocesses where sys.dm_exec_connections.session_id = sys.sysprocesses.spid and sys.sysprocesses.spid=@@spid
作者: ap0405140 发布时间: 2011-12-28
begin
INSERT INTO ip_er(ip,ipmac,computer,iptime)
VALUES (@ip,@ipmac,@computer,@iptime);
rollback tran
end
END
没进去咋INSERT,话说你是不是写错了,满足条件INSERT ,否则回滚啊
作者: pubb1111 发布时间: 2011-12-28
if(@count < 1) begin rollback tran INSERT INTO ip_er(ip,ipmac,computer,iptime) VALUES (@ip,@ipmac,@computer,@iptime); end
作者: qianjin036a 发布时间: 2011-12-28
SQL code
if(@count < 1)
begin
rollback tran
INSERT INTO ip_er(ip,ipmac,computer,iptime)
VALUES (@ip,@ipmac,@computer,@iptime);
end
作者: q465897859 发布时间: 2011-12-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28