我开发了汽车服务的自动化应用程序。我开始使用附件模块,但我无法想象我应该如何构建数据模型架构。
我有一个文本文件中的附件数据,逐行(不是cvs或ext ..,因此,我通过子字符串拆分主题)。每个月,工厂都会将数据文件发送到服务。它包括价格,名称,代码等。每月价格都会更新。我认为bulkinsert(和我做的)是将数据带到SQL的一个很好的选择,但它不是我的问题的解决方案。我不希望重复数据仅用于获得新价格。我想只将价格插入另一张桌子并建立配件 - 配件价格之间的关系,但有时候,一些新的配件可以添加到列表中,所以我必须检查配件表的每一行。而且,另一方面,我必须保留配件,发票等的数量。
顺便说一句,他们每月发送70,000行。那么,有人可以帮助我吗? :)
感谢。
答案 0 :(得分:1)
70,000行不是大文件。您必须自己解析此文件,并根据其中包含的数据发出普通的insert
和update
语句。没有必要对这种大小的数据使用批量操作。
最常见的方法是编写一个接受所有参数的简单SQL语句,然后执行以下操作:
if(exists(select * from YourTable where <exists condition>))
update YourTable set <new values> where <exists condition>
else
insert into YourTable (<columns>) values(<values>)
(或者,您可以尝试重写此语句以使用merge
T-SQL语句)
哪里......
<exists condition>
表示您需要检查项目是否已存在<new values>
是您要更新的列的Column = value
语句集<columns>
是用于为新项目插入数据的列集<values>
是与上一列列表然后,您将遍历文件中的每一行,将数据解析为参数值,然后使用这些参数运行上述SQL语句。