gpt4 book ai didi

sql-server - tsql : best way to update a db table with a csv file

转载 作者:行者123 更新时间:2023-12-03 00:29:18 24 4
gpt4 key购买 nike

我在 sql server 2005 中有一个产品表,需要通过 csv 文件中的某些字段进行更新。这两个文件都有一个供应商部件号,可以链接到我可以用 csv 文件中的另一个字段更新 products.discontined 字段的位置。

我的问题是解决这个问题的最佳方法是什么?

我考虑过创建与 Excel 文件的 odbc 连接并弄清楚如何合并更新两列。将整个 csv 文件(~60 MB)导入到 sql server 中的临时表中,然后编写 tsql 过程来搜索、比较、更新?还从查询分析器执行开源命令,并编写一个过程来读取 csv 文件并以这种方式更新表。

提前致谢

最佳答案

如果您可以使用,那么 SQL Server 2005 的最佳选择是 SQL Server Integration Services(以前称为数据转换服务或 DTS)。这将让您创建一个可以驻留在任何地方并按计划运行或在您决定时调用的包。它也可以与调用它的应用程序异步运行。

更新:
此外,您可以在决定发布之前运行并调试该包以使其完美。这将使您能够解释诸如格式错误的文档等问题。

如果您没有可用的 SSIS,那么您可以进行批量插入(引用:http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/)

创建一个与 csv 轮廓匹配的表格,然后使用以下命令导入它:

BULK
INSERT MyTable
FROM ‘c:\mycsv.csv’
WITH
(
FIELDTERMINATOR = ‘,’,
ROWTERMINATOR = ‘\n’
)

从那里您可以使用 tsql 对其进行转换,就像它在数据库的表中一样。

如果是持续更新,您可以创建临时表来完成工作并将存储过程作为作业运行。

关于sql-server - tsql : best way to update a db table with a csv file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com