Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 而不是自动更新日期时间列的VS after触发器_Sql Server_Triggers_Datatrigger - Fatal编程技术网

Sql server 而不是自动更新日期时间列的VS after触发器

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

假设我有一个表,其中有一个datetime字段(将其命名为
updated\u at
)作为“timestamp”列执行(因为在SQL Server中,timestamp数据类型不作为datetime存在)

我已经考虑过使用触发器来更新字段,但我不知道哪种会更好:

  • 使用
    而不是update
    触发器,并在触发器内部执行更新,但将
    updated\u设置为
    getdate()
    。这更难编码,但可能会执行得更好,因为它只需执行一次更新操作
  • 在更新后使用
    触发器,并对修改的行执行第二次更新,以将日期时间值设置为
    getdate()
    。这可能更容易编码,但意味着对表进行两次更新

就性能而言,哪种方法是最好的?

只需测试两个选项,然后自己看看。与等待其他人给出可能不适用于您特定情况的一般答案相比,自己测试某些东西几乎总是更快、更容易。SSMS和SQL Profiler可以为您提供有关执行时间和执行计划的大量信息。