★关于MS-SQL触发器的问题

thhui 2007-12-18 09:41:43
表 Operatorlog :

logid category
1 登录
2 注销
3 登录
4 注销
(自动递增)
每当登录某个程序,这个表会自动生成两条记录。
我现在要写触发器,在 logid 最大时执行。


create trigger insert_end on operatorlog
for insert,update,delete
as
.
.
.
...全文
86 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thhui 2007-12-18
  • 打赏
  • 举报
回复

ALTER trigger insert_end on operatorlog
for insert,update,delete
as

if exists(select * from operatorlog where logid=(select max(logid) from operatorlog) and category='注销')
begin
end



自己解决!!
thhui 2007-12-18
  • 打赏
  • 举报
回复
if @logid = 4

但我在运行程序时,最大值会变化的!!!
arrow_gx 2007-12-18
  • 打赏
  • 举报
回复


create trigger insert_end on operatorlog
for insert,update,delete
as
DECLARE @logid int
select @logid=inserted.logid
if @logid=4
begin
--这里插入你的代码
end
thhui 2007-12-18
  • 打赏
  • 举报
回复
您理解错啦,

我只要那个判断条件怎么写??
下面要做的事我写了。
LutzMark 2007-12-18
  • 打赏
  • 举报
回复
将 logid 定义为自增列
CREATE TRIGGER insert_end
ON operatorlog
for insert, update,delete
AS
DECLARE @logid int
select @logid =i.logid ,
@dlogid =d.logid ,
from operatorlog o
inner join inserted i on o.logid =i.logid
inner join deleted d on o.logid =d.logid
if update(logid)
IF NOT EXISTS (logid FROM Operatorlog WHERE logid = @logid )
insert into Operatorlog (cate_id,cate_name) select i.cate_id,i.cate_name FROM inserted i

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧