sqlcmd
是 Microsoft SQL Server 提供的一个命令行工具,用于执行 SQL Server 的管理任务和运行 Transact-SQL 脚本。要从 CSV 文件插入数据到 SQL Server 数据库,你可以按照以下步骤操作:
确保你的 CSV 文件格式正确,每行代表一条记录,字段之间用逗号分隔。
在 SQL Server 中创建一个与 CSV 文件结构相匹配的表。
CREATE TABLE YourTableName (
Column1 DataType,
Column2 DataType,
...
);
使用 sqlcmd
命令结合 BULK INSERT
或 OPENROWSET
语句来导入数据。
sqlcmd -S your_server_name -d your_database_name -Q "BULK INSERT YourTableName FROM 'C:\path\to\yourfile.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')"
sqlcmd -S your_server_name -d your_database_name -Q "INSERT INTO YourTableName SELECT * FROM OPENROWSET(BULK 'C:\path\to\yourfile.csv', FORMATFILE='C:\path\to\formatfile.xml')"
注意:使用 OPENROWSET
需要一个格式文件 (format file),该文件描述了 CSV 文件的结构。
执行查询以确认数据已成功导入。
SELECT * FROM YourTableName;
原因: CSV 中的数据类型可能与数据库表中的定义不一致。 解决方法: 检查并调整 CSV 文件中的数据或修改数据库表的列定义以匹配数据类型。
原因: CSV 文件和数据库可能使用了不同的字符编码。
解决方法: 确保 CSV 文件使用 UTF-8 编码,并在 BULK INSERT
或 OPENROWSET
中指定正确的编码。
原因: CSV 文件中的字段可能包含逗号、换行符等特殊字符。
解决方法: 使用引号包围包含特殊字符的字段,并在 BULK INSERT
中设置适当的 FIELDQUOTE
参数。
假设我们有一个 CSV 文件 data.csv
,内容如下:
1,John Doe,john@example.com
2,Jane Smith,jane@example.com
创建表的 SQL 脚本:
CREATE TABLE Users (
ID INT,
Name NVARCHAR(100),
Email NVARCHAR(100)
);
使用 sqlcmd
导入数据的命令:
sqlcmd -S your_server_name -d your_database_name -Q "BULK INSERT Users FROM 'C:\path\to\data.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')"
通过以上步骤,你可以成功地将 CSV 文件中的数据导入到 SQL Server 数据库中。
领取专属 10元无门槛券
手把手带您无忧上云