将具有过多列的大型CSV文件导入到SQL Server中的表中

时间:2019-05-08 19:21:20

标签: sql-server database csv import

我想将四个.csv文件(每个文件具有300,000行和150列,并且大小超过0.5 GB)导入数据库表中。在SQL Server中最简单的方法是什么?

我正在使用最新的SQL Server 2017 Express。我有4个大的.csv文件,我想将其导入数据库。我打算将它们导入4个单独的表中。但是,要创建新表,需要定义所有列名和数据类型,这将很麻烦。因此,我想知道如何更好,更轻松地实现这一目标。请注意,我是SQL Server的新手,但对它却不太熟悉。

2 个答案:

答案 0 :(得分:0)

为此专门创建了Microsoft BCP Utility

  

批量复制程序实用程序(bcp)在   用户指定的Microsoft SQL Server实例和数据文件   格式。 bcp实用程序可用于导入大量新   行到SQL Server表中或将表中的数据导出到数据中   文件。

答案 1 :(得分:0)

批量插入将为您完成此操作。

class Customers(models.Model):

    c_name = models.CharField(max_length=100)
    c_address = models.CharField(max_length=1000)
    c_country = models.CharField(max_length=50)

def _str_(self):
    return self.c_name

或者...

BULK INSERT dbo.YourTableName
FROM 'C:\Users\Steve\Downloads\yourfiletoIMPORT.csv'
WITH (
FirstRow = 2, --(if skipping a header row)
FIELDTERMINATOR = '\t',
ROWTERMINATOR   = '\n'
)

或者,如下面的链接所述,只需导入文件。

https://host4asp.net/import-csv-file-using-sql-server-management-studio/

使用SQL Server Management Studio导入CSV文件:

BULK INSERT SchoolsTemp
    FROM 'C:\Users\Steve\Downloads\yourfiletoIMPORT.csv'
    WITH
    (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    ERRORFILE = 'C:\Users\Steve\Downloads\errors.csv',
    TABLOCK
    )