5,927
社区成员




比如按照条件由手工表A(可能有错误项)循环生成表B,A里面有几个字段值需要验证合规性或逻辑关系,大家一般的做法是在循环外单独验证后再循环生成B表,还是在循环生成B表时,一行一行的验证不合规后回滚?假如A表有一千行数据吧。
哪种方式最优?请高手指教!
可以再B表些一个触发器,再触发器里面做验证
DS的回答
Delphi + SQL Server 数据验证与处理策略
对于从手工表A生成表B的处理,在Delphi和SQL Server环境下,有几种常见的做法:
推荐做法
写个存储过程验证表数据的有效性,返回部分有效数据或者空数据集,取决于你的需要了,然后客户端只通过存储过程取数据即可,这样验证逻辑改动后,客户端不用修改。
你这问题,其实与你的使用环境还是有关系的。例如,如果只是一次性(以后不会再用)的处理A表的错误数据,就1K条数据,想怎么处理就怎么处理,不用去考虑效率。再如:如果你那验证条件比较简单(可以直接通过SQL验证),那么,一条SQL就能把正确的数据生成新表B,不需要循环,而且很快。