在本文中,我们将使用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' ]
)]
)
最常用的输入参数如下。
- FIELDTERMINATOR – ‘
“ field_terminator”用作字段之间的分隔符。默认的字段终止符为\ t(制表字符)。 - 策划者–
‘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 -文件格式选项。