在 SQL 中设置多个值***让我的工作更轻松***

问题描述

我在工作中使用了以下 sql 查询效果很好,但是有时我需要更新 1000 多个值,而一次更新一个一个费力的过程,有没有办法可以一次输入多个值,在这种情况下,我有产品名称,我需要为它们设置名称和部分吗?提前致谢

use [Product.Extract] 
Begin TRANSACTION

Declare @name as varchar(255)
Declare @year as int
Declare @sectionid as int
-- Set variables
set @name = '225mm insulated efe'
set @year = 2021
set @sectionid = 1
--see original values
SELECT *
FROM normalisation.productmap
where term = @name
-- Insert values
INSERT INTO normalisation.productmap(name,year,sectionid)
VALUES(@name,@year,@sectionid)

解决方法

您可以对多行​​使用单个 insert 语句:

INSERT INTO Normalisation.productmap (name,year,sectionid)
    VALUES ('name1',2020,1),('name1',2),3),. . . ;

如果值来自表,您可以使用 insert . . . select:

INSERT INTO Normalisation.productmap (name,sectionid)
    SELECT name,sectionid
    FROM temp_table;

如果值来自外部文件,则可以使用 LOAD DATA INFILE