📜  SQL服务器|使用T-SQL命令从csv文件批量插入数据

📅  最后修改于: 2021-08-25 10:37:30             🧑  作者: Mango

在本文中,我们将使用SQL Server中的T-SQL命令介绍来自csv文件的批量插入数据。并且还将覆盖执行此类操作的方式更有用和更方便。让我们一一讨论。

介绍 :
有时在某些情况下,我们必须将.csv文件中的数据批量插入SQL Server数据库中。我们可以使用SSMS(SQL Server Management Studio)中的GUI界面从Excel,CSV等文件导入数据。如果要导入数百万个数据,上面的操作将非常耗时,因此,现在您将了解如何处理此类操作。

笔记 –
需要INSERT和ADMINISTER BULK OPERATIONS权限。

替代方法:
这里,在本文中,我们将通过几行T-SQL Command提供一种更快的替代方法。

BULK INSERT ..
FROM ''
WITH
(
-- input file format options
   [ [ , ] FORMAT = 'CSV' ]
   [ [ , ] FIELDQUOTE = 'quote_characters']
   [ [ , ] FORMATFILE = 'format_file_path' ]
   [ [ , ] FIELDTERMINATOR = 'field_terminator' ]
   [ [ , ] ROWTERMINATOR = 'row_terminator' ]
    )]
)

最常用的输入参数如下。

  1. FIELDTERMINATOR –
    “ field_terminator”用作字段之间的分隔符。默认的字段终止符为\ t(制表字符)。
  2. 策划者–
    ‘row_terminator’用于指定行的结尾。默认的行终止符是\ r \ n(字符)。

将CSV文件导入到SQL表中:
在这里,我们将讨论将CSV文件导入到SQL Server中的表中。考虑以下给定的CSV文件,或者您可以使用自己的csv文件执行此操作。让我们尝试将csv文件导入到SQL Server中的SQL表中。

现在,让我们创建SQL表来存储上述数据。

创建表–
这里。我们将根据csv文件记录创建表架构。

USE [Test]--Database name

CREATE TABLE [dbo].[Employee](                              
[Emp ID] bigint primary key,
[First Name] [varchar](50) NULL,
[Last Name] [varchar](50) NULL,
[Salary] bigint,
[City] [varchar](50)
)

批量插入–
现在让我们将文件批量插入Employee SQL表:

BULK INSERT [Test].[dbo].[Employee]
FROM 'C:\data\employee_data.csv'
WITH (FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR='\n' );

输出 –
执行完上述操作后,我们可以看到记录已用几行代码插入到Employee表中,如下所示。

参考 :
要获取有关输入格式选项的更多信息,请访问https://docs.microsoft.com/zh-cn/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017#input -文件格式选项。