none
[求助]sql2008 r2使用中遇到的困惑[结贴] RRS feed

  • 问题

  • 低级错误:引入历史记录小程序导致的错误

    万分感谢网友的分析!!

    在微软的MSSQLSERVER2008R2版中,出现了这样两种的情况:

    已知有一个表A,A中有多个字段,其中某一字段名为Fsystime(默认值为Getdate()),用于记住记录添加的时间。

    情况一:

    某操作员在2018-07-11 16:58:53向表A添加了一条记录,表A中Fsystime的值却记录为2018-04-02 15:50:18.000。

    此类记录在表A中有2545条。而正常的记录时间的记录有29万多条。

    情况二:

    表A中有2个特殊的字段,用于记录审核人和审核时间,其中审核时间取的是Getdate(),审核人取的是当前登录用户。

    最近发现,这两个字段出现了违反业务逻辑的记录。比如2018年7月11日创建的单据,审核时间却为2018年6月1日。用触发器追踪了一下,发现异常的记录均没有记录在审核日志中。

    上述情况自2018年6月4日出现至今,始终无法解决,愿路过的朋友能指点迷津,解我心头之惑。

    补充:SQL日志无法打开,查看时报错。


    • 已编辑 谈建华 2018年7月20日 7:57 低级错误:引入历史记录小程序的错误。
    2018年7月11日 13:01

全部回复

  • Is system date/time correct on the server?
    2018年7月11日 17:59
  • “2018年7月11日创建的单据,审核时间却为2018年6月1日”

    既然都是getdate(),则应该是同一个电脑上的时间。是否有单据对审核时间设置值,您可以用SQL Profiler跟踪,查看应用程序生成的SQL语句。

    如果场景不好模拟,可以将SQL Profiler的跟踪的SQL语句写到表中,再逐步分析这些SQL语句是如何导致审核时间比创建时间还早的。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年7月12日 0:15
  • 操作系统时间被调过吧
    2018年7月12日 1:39
  • 系统时间没问题。
    2018年7月12日 2:08
  • 用户只审核了10条记录,后台有12条甚至更多记录被审核。其中多出来的已审核记录在审核日志中不能找到。
    2018年7月12日 2:09
  • 如果这个问题经常出现,可以考虑使用触发器或审核功能来追踪一下导数据变化的操作
    2018年7月13日 1:15