sql-server - 当删除行时,SQL 触发器中的 UPDATED() 函数是否返回 true?

标签 sql-server

当您使用触发器对表运行 DELETE 语句时,该触发器中的 UPDATE( colName ) 函数会返回 true 吗?

最佳答案

没有。 UPDATE(colName) 仅对于 INSERT 和 UPDATE 返回 TRUE

set nocount on
go
create table test ( cola nvarchar(10), colB int default(0) ) 
go 
create trigger tr_test on test for insert,update,delete
as
begin 
    select case when update(cola) then 'yes' else 'no' end as ColA_Updated, 
           case when update(colb) then 'yes' else 'no' end as ColB_Updated
end 
go 

-- This outputs 'yes', 'yes'
insert into test (cola) values ( 'a' ) 

-- This outputs 'yes', 'no'
update test set cola = 'b' 

-- This outputs 'no', 'no'
delete from test where 1=0

-- This outputs 'no', 'no'
delete from test 

go
drop trigger tr_test
drop table test
go 

关于sql-server - 当删除行时,SQL 触发器中的 UPDATED() 函数是否返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286034/

相关文章:

sql-server - 使用 TSQL 旋转 JPEG 图像,可能吗?

sql - 我们可以创建包含列的聚集索引吗

sql-server - 在完整版 sql server 2008R2 上禁用 SQL Server 代理安装

.net - C# 事务中的事务

SQL Server 按位处理,如 C# 枚举标志

sql-server - 非唯一聚类键是否会增加页面级锁定的可能性?

sql-server - 动态分区值 SQL Server Azure Synapse

sql - 如何在sql server中根据条件生成序列号

sql - 将 Sql Server 2014 数据库连接到 Azure VM

sql-server - Azure CLI - 如何将标签添加到 Azure Sql 服务器(逻辑服务器)?