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

📅  最后修改于: 2023-12-03 14:47:40.934000             🧑  作者: Mango

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

在 SQL 服务器中,我们可以使用 T-SQL 命令从 CSV 文件批量插入数据。这种方法对于大量数据导入非常有用,可以减少手动插入的工作量并提高效率。本文将介绍如何使用 T-SQL 命令从 CSV 文件导入数据,以及一些注意事项。

步骤

以下是从 CSV 文件批量插入数据到 SQL 服务器的步骤:

  1. 创建表格:首先,我们需要创建一个与 CSV 文件结构相匹配的表格。可以使用 CREATE TABLE 语句来定义表格的列。
CREATE TABLE TableName (
    Column1 DataType,
    Column2 DataType,
    ...
)
  1. 使用 BULK INSERT:使用 T-SQL 的 BULK INSERT 命令来导入数据。这个命令允许我们从 CSV 文件中批量插入数据。
BULK INSERT TableName
FROM 'FilePath'
WITH (
    FORMAT = 'CSV',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)
  • TableName:要插入数据的表格名称。
  • FilePath:CSV 文件的完整路径。
  • FORMAT:指定文件格式,这里使用 CSV。
  • FIELDTERMINATOR:字段分隔符,这里使用逗号。
  • ROWTERMINATOR:行分隔符,这里使用换行符。
  1. 检查导入的数据:成功导入数据后,可以使用 SELECT 语句来检查表格中的数据,确认导入是否正确。
注意事项

在导入数据前,请注意以下事项:

  • CSV 文件的列顺序必须与表格的列顺序一致。
  • CSV 文件的列名和表格的列名应该匹配,否则需要在 BULK INSERT 命令中指定列名。
BULK INSERT TableName
FROM 'FilePath'
WITH (
    FORMAT = 'CSV',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    FIRSTROW = 2,  -- 指定 CSV 文件第一行为列名
    FIELDQUOTE = '"',
    KEEPNULLS
)
  • 可以使用其他选项,如 FIRSTROW 来指定 CSV 文件的第一行是否包含列名。
  • 如果 CSV 文件中的数据包含引号,并且引号内可能包含分隔符,可以使用 FIELDQUOTE 选项指定引号字符。
  • KEEPNULLS 选项允许保留 CSV 文件中的空值。
示例

以下示例演示了从 CSV 文件批量插入数据的完整步骤。

-- 创建表格
CREATE TABLE Customers (
    ID INT,
    Name VARCHAR(100),
    Email VARCHAR(100)
)

-- 从 CSV 文件插入数据
BULK INSERT Customers
FROM 'C:\path\to\customers.csv'
WITH (
    FORMAT = 'CSV',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)

-- 检查导入的数据
SELECT * FROM Customers

以上示例假设已经创建了名为 Customers 的表格,并且 CSV 文件的路径为 C:\path\to\customers.csv

请根据实际情况修改表格名称、列名、数据类型以及 CSV 文件的路径和选项。

希望这篇文章对你使用 T-SQL 命令从 CSV 文件批量插入数据有所帮助!