我有一个CLR触发器,用于跟踪表中的更改。触发器的第一步是获取与触发器关联的表名,因此我正在执行以下操作:
SELECT object_name(resource_associated_entity_id) FROM sys.dm_tran_locks WHERE request_session_id = @@spid and resource_type = 'OBJECT'
这样可以正常工作,但是需要大约40毫秒才能完成,这使得审计触发器在1000条记录和更新时非常慢。
是否有更快的方法来获取表名?
或者,是否可以将表名作为参数传递给CLR触发器?