當前位置:首頁 » 編程語言 » 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

熱點內容
淘寶密碼忘記了怎麼改 發布:2025-07-16 18:47:34 瀏覽:12
樂視1s鎖屏密碼是12的有多少 發布:2025-07-16 18:45:12 瀏覽:98
戰隊宣傳片拍攝腳本 發布:2025-07-16 18:42:23 瀏覽:462
疫情源碼 發布:2025-07-16 18:34:53 瀏覽:794
安卓開發平台怎麼樣 發布:2025-07-16 18:30:35 瀏覽:345
電話加密碼 發布:2025-07-16 18:29:12 瀏覽:66
河馬雲腳本 發布:2025-07-16 18:29:03 瀏覽:148
格物致知編程 發布:2025-07-16 18:07:54 瀏覽:950
戴爾伺服器系統設置如何設置 發布:2025-07-16 18:02:09 瀏覽:961
為什麼換安卓這么難 發布:2025-07-16 17:14:44 瀏覽:423