在 SQL Server 中,可以使用
INSERT INTO
语句批量增加记录。,,``sql,INSERT INTO 表名 (列1, 列2, 列3),VALUES,(值1, 值2, 值3),,(值4, 值5, 值6),,...,(值n, 值n+1, 值n+2);,
``
SQL Server 批量增加记录的方法
使用INSERT INTO语句
1、语法格式:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...;
2、示例:
假设有一个名为"students"的表,包含"id"、"name"和"age"三个列,要批量插入多条记录,可以使用以下语句:
INSERT INTO students (id, name, age) VALUES (1, '张三', 18), (2, '李四', 19), (3, '王五', 20);
以上语句将一次性插入三条记录到"students"表中。
使用BULK INSERT命令
1、语法格式:
BULK INSERT 表名 FROM '文件路径' WITH (FIELDTERMINATOR = '字段分隔符', ROWTERMINATOR = '行分隔符');
2、示例:
假设有一个名为"students.csv"的CSV文件,包含"id"、"name"和"age"三个字段,字段之间用逗号分隔,每行表示一条记录,要批量插入这些记录到"students"表中,可以使用以下语句:
BULK INSERT students FROM 'C:\students.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = ' ');
以上语句将读取CSV文件中的数据,并将其批量插入到"students"表中。
相关问题与解答
问题1:如果表中存在自增主键,是否可以使用INSERT INTO语句批量插入记录?
解答:可以,如果表中存在自增主键,可以在INSERT INTO语句中省略该列的值,由数据库自动生成。
INSERT INTO students (name, age) VALUES ('张三', 18), ('李四', 19), ('王五', 20);
以上语句将批量插入三条记录到"students"表中,数据库会自动为每条记录生成一个唯一的自增主键。
问题2:如果CSV文件中的字段顺序与表结构不一致,如何批量插入记录?
解答:可以通过指定字段映射的方式解决,在BULK INSERT命令中,可以使用FIELDTERMINATOR和ROWTERMINATOR来指定字段分隔符和行分隔符,并使用列名或列序号来指定字段映射关系。
BULK INSERT students (id, name, age) FROM 'C:\students.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = ' ', FIELDQUOTE = '"', FORMATFILE = 'C:\formatfile.fmt');
FORMATFILE是一个文本文件,用于指定字段映射关系,在该文件中,可以按照CSV文件中的字段顺序编写列名和对应的表结构中的列序号。
1,"id","integer" 2,"name","varchar(50)" 3,"age","integer"
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/508156.html