gpt4 book ai didi

sql - 基于 CSV SQL 的批量插入更新列

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

我正在尝试根据 CSV 文件更新表格。我有 CSV 格式的 ID 和修剪编号列表,我需要根据 SQL 表中的特定 ID 更新修剪编号。

到目前为止我写的脚本

-- Create a temporary table for the import
drop table #InterpreterTrimNumbers
CREATE TABLE #InterpreterTrimNumbers(
[SAPInterpreterId] int,
TempTrimNumber varchar(100)
)

BEGIN TRANSACTION
-- Bulk import into the temporary table
BULK INSERT #InterpreterTrimNumbers FROM 'C:\CSVData\Trim numbers.csv' WITH (
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
ERRORFILE = 'C:\CSVData\Trim numbers-errors.csv',
TABLOCK
)

update Interpreters set TrimNumber = (select TempTrimNumber from #InterpreterTrimNumbers where #InterpreterTrimNumbers.SAPInterpreterId = Interpreters.SAPInterpreterID )
Commit Transaction

即使 CSV 文件只有 110 条记录,此操作也会返回受影响的 1824 行。我只想更新具有特定 SAPInterpreterID 的记录

感谢任何帮助。

最佳答案

假设您只在临时表中插入了 110 条记录,并且 ID 在解释器表中是唯一的,那么您的语法应如下所示

UPDATE i 
SET TrimNumber = tempintr.TempTrimNumber
FROM Interpreters AS i INNER JOIN
#InterpreterTrimNumbers tempintr
ON i.TrimNumber= tempintr.TempTrimNumber

您的查询不起作用的原因是它试图更新解释器表中的每个数字。当与临时表匹配时,那么这就是您所需要的。但是,当没有匹配项时,您的查询将返回 NULL,导致不匹配的记录更新为 NULL

关于sql - 基于 CSV SQL 的批量插入更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521009/

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