将数据从 CSV 加载到 Azure SQL 数据库或 SQL 托管实例(平面文件)

适用于:Azure SQL 数据库Azure SQL 托管实例

可以使用 bcp 命令行实用工具将数据从 CSV 文件导入 Azure SQL 数据库或 Azure SQL 托管实例。

先决条件

若要完成本文中的步骤,需要:

  • 数据库
  • bcp命令行实用工具已安装
  • sqlcmd命令行实用工具已安装

可以从 bcp下载sqlcmd实用工具。

采用 ASCII 或 UTF-16 格式的数据

如果要使用自己的数据尝试本教程,则数据需要使用 ASCII 或 UTF-16 编码,因为 bcp 不支持 UTF-8。

1.创建目标表

将某个表定义为目标表。 该表中的列必须对应于数据文件每一行中的数据。

为了创建表,请打开命令提示符,然后使用 sqlcmd.exe 运行以下命令:

sqlcmd.exe -S <server name> -d <database name> -U <username> -P <password> -I -Q "
    CREATE TABLE DimDate2
    (
        DateId INT NOT NULL,
        CalendarQuarter TINYINT NOT NULL,
        FiscalQuarter TINYINT NOT NULL
    )
    ;
"

2.创建源数据文件

打开记事本,将以下数据行复制到新的文本文件中,然后将此文件保存到本地临时目录。 C:\Temp\DimDate2.txt 此数据采用 ASCII 格式。

20150301,1,3
20150501,2,4
20151001,4,2
20150201,1,3
20151201,4,2
20150801,3,1
20150601,2,4
20151101,4,2
20150401,2,4
20150701,3,1
20150901,3,1
20150101,1,3

(可选)若要从 SQL Server 数据库导出自己的数据,请打开命令提示符并运行以下命令。 请将<TableName><ServerName><DatabaseName><Username><Password>替换为您自己的信息。

bcp <TableName> out C:\Temp\DimDate2_export.txt -S <ServerName> -d <DatabaseName> -U <Username> -P <Password> -q -c -t ","

3.加载数据

若要加载数据,请打开命令提示符并运行以下命令,并将值<ServerName><DatabaseName><Username><Password>替换为自己的信息。

bcp DimDate2 in C:\Temp\DimDate2.txt -S <ServerName> -d <DatabaseName> -U <Username> -P <password> -q -c -t ","

使用此命令验证是否已正确加载数据:

sqlcmd.exe -S <server name> -d <database name> -U <username> -P <password> -I -Q "SELECT * FROM DimDate2 ORDER BY 1;"

结果应如下所示:

DateId CalendarQuarter FiscalQuarter
20150101 1 3
20150201 1 3
20150301 1 3
20150401 2 4
20150501 2 4
20150601 2 4
20150701 3 1
20150801 3 1
20150801 3 1
20151001 4 2
20151101 4 2
20151201 4 2

后续步骤