2013-06-26 94 views
0

我有一个基本上监视任何CSV文件的文件夹的Windows服务。 CSV文件中的每个记录都插入到SQL表中。如果相同的CSV文件放在该文件夹中,则可能会导致表中出现重复的记录条目。我怎样才能避免重复插入到SQL表中?避免重复的记录插入SQL表

+1

如何检测“重复”记录,是否有像GUID这样的独特列,您可以比较旧的和新的,或者您需要检查每列是否相同。你也需要检查csv中的每一行是否是重复的或者只是不导入同一个文件两次? –

+0

上传之前您是否对CSV文件执行了任何验证? –

+0

斯科特,不幸的是表中没有主键。如何将CSV记录与整个SQL表行进行比较? –

回答

1

尝试INSERT WHERE NOT EXISTS,其中abc是相关列,@a@b@c相关值。

INSERT INTO table 
(
    a, 
    b, 
    c 
) 
VALUES 
(
    @a, 
    @b, 
    @c 
) 
WHERE NOT EXISTS 
(
    SELECT 0 FROM table WHERE a = @a, b = @b, c = @c 
)