[英]Oracle AUDSID equivalent in SQL Server 2012
请问与此等效的SQL Server 2012代码是什么?
IF INSERTING THEN
:NEW.audsid:=SYS_CONTEXT('USERENV', 'SESSIONID');
Oracle和SQL Server处理触发器的方式非常不同。 Oracle的概念是触发器一次只影响一行。 SQL Server没有。 相反,它使用inserted
新行的“表”。
因此,您的问题分为三个部分:
INSERTED
? SYS_CONTEXT('USERENV', 'SESSIONID')
的等效项是什么? 这是前两个问题的答案:
if (exists (select 1 from inserted) and (not exists (select 1 from deleted))
update inserted
set audsid = @@SPID;
但是,在大多数情况下,只需在列定义中使用default
关键字:
audsid int default @@SPID
容易得多,不需要触发器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.