删除触发器getdate()返回1906年

时间:2013-01-03 19:35:49

标签: sql sql-server sql-server-2000

我想在删除的记录上设置日期/时间戳,但我得到了奇怪的结果。当此触发器触发时,它将日期设置为1906!

我尝试在查询中使用GETDATE()函数,并在表属性上使用UPDATE并使用默认值。它适用于我手动输入DELETED_RECORDS表的记录,但由于实际删除而移入的任何记录都有1906日期。我不确定发生了什么

ALTER TRIGGER [dbo].[Backup_TT_Deleted_Records]
ON [dbo].[tblLLS_TT]
FOR DELETE
AS
  BEGIN
      INSERT INTO dbo.tblLLS_TT_DELETED_RECORDS
      SELECT *
      FROM   Deleted

      UPDATE dbo.tblLLS_TT_DELETED_RECORDS
      SET    Deleted_DTTM = GETDATE()
      WHERE  dbo.tblLLS_TT_DELETED_RECORDS.Deleted_DTTM IS NULL
  END 

如果我在DELETED_RECORDS表上输入一条记录而留下Delete_DTTM null,那么删除一条导致触发器触发的记录将正确填写该记录,但是记录( s)删除进入DELETED_RECORDS表将再次具有1906年的日期。我还注意到每个记录的日期增加一天。

知道这里可能会发生什么吗?

您希望我执行的任何其他测试让我知道,我会发布结果。这个很奇怪。谢谢!

1 个答案:

答案 0 :(得分:1)

如果你执行,你得到什么价值?

SELECT GETDATE();

可能是服务器时间配置错误。您还可以使列“Deleted_DTTM”的默认值采用其默认系统日期,然后您可以跳过上一个更新语句。