将 csv 文件导入 SQL Server Management Studio 并更新现有条目

cor*_*nia 1 sql sql-server csv

我正在运行 SQL Server 2012,并且有一个包含大约 20,000 个条目的数据库。我需要更新其中大约 5,000 个的几列。

我有 csv 中的列,它基本上如下所示:

ClientNumber    ClientName              TaxYear       OutputFileField
9455            James Bond and Company   2016          \local\cndps\93985.esx
Run Code Online (Sandbox Code Playgroud)

我需要根据第 4 列匹配更新前 3 列

例如,我需要将上面的内容更新为

ClientNumber    ClientName              TaxYear       OutputFileField
1111            Luis Fandora            2044          \local\cndps\93985.esx
Run Code Online (Sandbox Code Playgroud)

我尝试通过 SQL Server Management Studio 导入,但这不起作用。

任何帮助,将不胜感激。

Fut*_*Fan 6

就像@Shreyas Chavan 建议的那样,你可以这样做:

  • 创建临时表并加载新的电子表格数据。

  • 接下来,将现有表连接到第四个字段 ( OutputField) 上的临时表。

  • 根据该连接更新前三列。

这是示例代码:

CREATE TABLE #ClientInfo(
ClientNumber int NOT NULL,
ClientName nvarchar(255) NULL,
Tax_Year int NULL, 
OutputField nvarchar(255) NULL)
GO

BULK INSERT #ClientInfo
FROM 'C:\Documents and Settings\corewania\Desktop\ClientInfo.csv'    
       --change this to match your directory
WITH(  
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n')
GO


UPDATE oci
SET oci.ClientNumber = nci.ClientNumber,
    oci.ClientName = nci.ClientName,
    oci.Tax_Year = nci.Tax_Year 
FROM orig_Clientinfo oci
JOIN #ClientInfo nci on nci.OutputField = oci.OutputField;
Run Code Online (Sandbox Code Playgroud)