如何在 SQL Server 中使用一次查询更新多条记录?
原文:https://www . geesforgeks . org/如何使用 SQL server 中的一次查询更新多条记录/
在 SQL 中,有时我们需要在一个查询中更新多个记录。我们将使用 UPDATE 关键字来实现这一点。为此,我们使用了两种示例,即第一种仅基于一个条件,第二种基于多个条件。在本文中,我们将使用微软的 SQL Server 作为我们的数据库和选择关键字。
步骤 1: 创建数据库。为此,使用下面的命令创建一个名为 GeeksForGeeks 的数据库。
查询:
CREATE DATABASE GeeksForGeeks
输出:
步骤 2: 使用 GeeksForGeeks 数据库。为此,请使用以下命令。
查询:
USE GeeksForGeeks
输出:
步骤 3: 在数据库 GeeksForGeeks 中创建一个 BANDS 表。该表有 3 列,即乐队名称、表演成本和成员数量,包含乐队的名称、表演费用和成员数量。
查询:
CREATE TABLE BANDS(
BAND_NAME VARCHAR(20),
PERFORMING_COST INT,
NUMBER_OF_MEMBERS INT);
输出:
第 4 步:描述表 BANDS 的结构。
查询:
EXEC SP_COLUMNS BANDS;
输出:
第 5 步:在 BANDS 表中插入 5 行。
查询:
INSERT INTO BANDS VALUES('INDIAN OCEAN',10000,5);
INSERT INTO BANDS VALUES('BTS',20000,6);
INSERT INTO BANDS VALUES('METALLICA',30000,10);
INSERT INTO BANDS VALUES('BEATLES',40000,4);
INSERT INTO BANDS VALUES('EAGLES',50000,4);
输出:
第 6 步:显示 BANDS 表的所有行。
查询:
SELECT * FROM BANDS;
输出:
步骤 7: 更新表 BANDS 中仅满足一个条件的所有记录。这里的条件是栏的值应该小于 5。如果条件得到满足,那么列的值将加倍。使用关键字更新和其中来实现。****
语法:
UPDATE TABLE_NAME SET COLUMN_NAME
= VALUE WHERE CONDITION;
查询:
UPDATE BANDS SET PERFORMING_COST =
2*PERFORMING_COST WHERE NUMBER_OF_MEMBERS<=5;
输出:
第 8 步:显示更新后的 FIRM 表的所有行。
查询:
SELECT * FROM BANDS;
注:表演 _ 成本对于拥有成员数量 < =5 的乐队来说已经翻倍了。
输出:
步骤 9: 更新满足两个(多个)条件的表波段的所有记录。这里的条件是如果乐队名称是“金属”,那么它的表演 _ 费用设置为 90000,如果乐队名称是“基站”,那么它的表演 _ 费用设置为 200000。使用关键字更新和当来实现这一点。该查询的行为类似于 if-else if-else 块。
语法:
UPDATE TABLE_NAME
SET COLUMN_VALUE
= CASE COLUMN_NAME
WHEN 'COLUMN_NAME1' THEN COLUMN_VALUE1
WHEN 'COLUMN_NAME2' THEN COLUMN_VALUE2
ELSE COLUMN_VALUE
END
WHERE BAND_NAME IN('COLUMN_NAME1', 'COLUMN_NAME2');
查询:
UPDATE BANDS
SET PERFORMING_COST
= CASE BAND_NAME
WHEN 'METALLICA' THEN 90000
WHEN 'BTS' THEN 200000
ELSE PERFORMING_COST
END
WHERE BAND_NAME IN('METALLICA', 'BTS');
输出:
第 10 步:显示更新后的 FIRM 表的所有行。
查询:
SELECT * FROM BANDS;
注:【METALLICA 和 BTS 的performance _ COST已分别更新为 90000 和 200000。
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处