Sql server 而不是自动更新日期时间列的VS after触发器
假设我有一个表,其中有一个datetime字段(将其命名为Sql server 而不是自动更新日期时间列的VS after触发器,sql-server,triggers,datatrigger,Sql Server,Triggers,Datatrigger,假设我有一个表,其中有一个datetime字段(将其命名为updated\u at)作为“timestamp”列执行(因为在SQL Server中,timestamp数据类型不作为datetime存在) 我已经考虑过使用触发器来更新字段,但我不知道哪种会更好: 使用而不是update触发器,并在触发器内部执行更新,但将updated\u设置为getdate()。这更难编码,但可能会执行得更好,因为它只需执行一次更新操作 在更新后使用触发器,并对修改的行执行第二次更新,以将日期时间值设置为get
updated\u at
)作为“timestamp”列执行(因为在SQL Server中,timestamp数据类型不作为datetime存在)
我已经考虑过使用触发器来更新字段,但我不知道哪种会更好:
- 使用
触发器,并在触发器内部执行更新,但将而不是update
updated\u设置为
。这更难编码,但可能会执行得更好,因为它只需执行一次更新操作getdate()
- 在更新后使用
触发器,并对修改的行执行第二次更新,以将日期时间值设置为
。这可能更容易编码,但意味着对表进行两次更新getdate()
就性能而言,哪种方法是最好的?只需测试两个选项,然后自己看看。与等待其他人给出可能不适用于您特定情况的一般答案相比,自己测试某些东西几乎总是更快、更容易。SSMS和SQL Profiler可以为您提供有关执行时间和执行计划的大量信息。