Asp.net 如何防止UpdateCommand语句中的转换字段被同一UpdateCommand语句覆盖?
我正在创建一个报告,统计一周内记录更新的次数 听起来很简单,对吧?让我在这个挑战中加入一些复杂性 我面临的挑战是,我使用的日期范围依赖于另一个字段,如果该字段得到更新,它将更新日期范围字段,从而完全取消报告。我将通过下面的示例尽可能简单: 所以我有一张桌子Asp.net 如何防止UpdateCommand语句中的转换字段被同一UpdateCommand语句覆盖?,asp.net,sql,sql-server,gridview,sql-server-2012,Asp.net,Sql,Sql Server,Gridview,Sql Server 2012,我正在创建一个报告,统计一周内记录更新的次数 听起来很简单,对吧?让我在这个挑战中加入一些复杂性 我面临的挑战是,我使用的日期范围依赖于另一个字段,如果该字段得到更新,它将更新日期范围字段,从而完全取消报告。我将通过下面的示例尽可能简单: 所以我有一张桌子 book.book_keeping_2014 此表中有以下列: record_number - Automatically generated by a SEQUENCE command amount record_name record_
book.book_keeping_2014
此表中有以下列:
record_number - Automatically generated by a SEQUENCE command
amount
record_name
record_updated
数据库中的记录已经存在,最好只更新一次
记录名有一种特定的格式,其中日期在文件信息的其余部分之前。示例文件名为:
20140106-blah-blah-blah-blah.txt
下面是我为UpdateCommand定义的内容:
UPDATE book.book_keeping_2014 SET [amount] = @amount,
record_name = @record_name, record_updated = LEFT(record_name,8)
WHERE [record_number] = @record_number
因此,记录名称字段中的该条目-
20140106-blah-blah-blah-blah(etc).txt
将作为以下内容输入记录更新字段:
20140106
目前,代码运行良好。但是,可能会出现奇数时间,记录名称列中的给定单元格需要更新。根据上面的UpdateCommand,如果record_name字段更新,record_updated字段也会更新
我面临的挑战是,如果我为1月的第一周创建一份周报,然后在1月的第4周更新记录,那么这将导致一份报告。月报也是如此
我的问题是如何防止/重新编码我的Update语句,以便当LEFT命令第一次提取正确的信息时,它不会被覆盖
对于日期转换场景,我也有类似的挑战,但我可以将其放在另一个问题中。如果您可以更改表的结构,那么您可以为HasUpdated添加一个标志。然后在查询中,只更新HasUpdated=0的行。您的意思是添加一个名为“HasUpdated”的列,还是这是一个系统设置?向表中添加一个位列。它可以由一个触发器来维护,该触发器将在更新该行时将该列更改为1,或者在
UPDATE
语句中对其进行管理。