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

📅  最后修改于: 2021-09-10 02:24:30             🧑  作者: Mango

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

介绍 :
有时,我们必须将 .csv 文件中的数据批量插入到 SQL Server 数据库中。我们可以使用 SSMS(SQL Server Management Studio)中的 GUI 界面从 Excel、CSV 等文件中导入数据。如果我们有数百万的数据要导入,那么上面的工作将是一项耗时的任务,现在您将看到如何处理此类操作。

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

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

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

最常用的输入参数如下。

  1. 现场终结者 –
    ‘field_terminator’ 用作字段之间的分隔符。默认字段终止符是 \t(制表字符)。
  2. ROWTERMINATOR –
    ‘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/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017#input -文件格式选项。