在 SQL 中设置多个值 ***让我的工作更轻松***
Set multiple values in SQL ***make my job easier***
我在工作中使用以下 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', 2020, 2),
('name1', 2020, 3),
. . . ;
如果值来自 table,您可以使用 insert . . . select
:
INSERT INTO Normalisation.productmap (name, year, sectionid)
SELECT name, year, sectionid
FROM temp_table;
如果值来自外部文件,则可以使用 LOAD DATA INFILE
。
我在工作中使用以下 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', 2020, 2),
('name1', 2020, 3),
. . . ;
如果值来自 table,您可以使用 insert . . . select
:
INSERT INTO Normalisation.productmap (name, year, sectionid)
SELECT name, year, sectionid
FROM temp_table;
如果值来自外部文件,则可以使用 LOAD DATA INFILE
。