当前位置:首页 » 编程语言 » sql触发器修改

sql触发器修改

发布时间: 2023-03-03 08:30:50

sql触发器不允许修改某一列数据

createtriggeraaaon[sys]
forupdate
as
--username列修改且存在sys_id='A'就回滚
ifupdate(username)AndExists(Select*Frominsertedwheresys_id='A')
rollbacktransaction

❷ SQL求助 插入删除修改的触发器代码编写

---创建测试表:
Create Table MyTest(
id int identity(1,1) not null primary key,
[name] varchar(100) null
)
--创建触发器:
CREATE TRIGGER trigtest--创建触发器trigtest
ON mytest--在表mytest上建
for INSERT,DELETE,UPDATE--为插入,删除,修改
AS
BEGIN
declare @a int,
@b int,
@id int,
@name varchar(100),
@oldId int,--原ID号
@oldName varchar(100)--原来的name
set @a=0
set @b=0
if exists(select * from inserted)--如果存在插入新的数据则设置@a=1
begin
set @a=1
end
if exists(select * from deleted)--如果存在删除数据则设置@b=1
begin
set @b=1
end
if (@a=1)and(@b=0)--新增:当插入表inserted存在数据而删除表deleted不存数据时,为新增操作。
begin
select @id=id,@name=name from inserted
print '增加了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!'
end
if (@a=1)and(@b=1)--修改:当插入表insertedt和删除表deleted都存在数据时,为修改操作。
begin
select @id=id,@name=name from inserted
select @id=id,@oldname=name from deleted
print '修改了ID号为【'+cast(@id as varchar(5))+'】的数据Name由【'+@oldname+'】变为【'+@name+'】'
end
if (@a=0)and(@b=1)--删除:当插入表inserted不存在数据而删除表deleted存在数据时,为删除操作。
begin
select @id=id,@name=name from deleted
print '删除了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!'
end
END

热点内容
怎么用电脑开手机服务器 发布:2024-11-07 10:30:50 浏览:501
代挂网源码最新版 发布:2024-11-07 10:28:30 浏览:820
atoilinux 发布:2024-11-07 10:19:06 浏览:462
速腾哪个配置性能好 发布:2024-11-07 09:55:08 浏览:622
压缩空气的价格 发布:2024-11-07 09:51:25 浏览:541
达内培训班java 发布:2024-11-07 09:51:19 浏览:315
c语言快速排序函数 发布:2024-11-07 09:41:16 浏览:210
mobisage文件夹 发布:2024-11-07 09:29:16 浏览:877
车载安卓机怎么清理垃圾 发布:2024-11-07 09:12:51 浏览:451
外网访问vmware 发布:2024-11-07 08:51:03 浏览:953