【问题标题】:SQL calculation X + Y = ZSQL 计算 X + Y = Z
【发布时间】:2021-05-13 17:01:35
【问题描述】:

SQL 新手,如果已经问过这个问题,我很抱歉。我正在寻找一个包含 3 列 X、Y 和 Z 的表,我将在其中将 X 和 Y 值添加到表中。然后我想创建一个存储过程,它将获取 X 和 Y 的行值,将它们加在一起,并将该值作为 Z 存储在我的表中。我希望能够随时添加 X 和 Y 值,然后在计算 Z 之后运行存储过程。

CREATE TABLE XYZ 
(
    X INT NOT NULL,
    Y INT NOT NULL,
    Z INT NULL
);
GO

INSERT INTO XYZ (X, Y) VALUES (3, 5);
INSERT INTO XYZ (X, Y) VALUES (5, 8);
INSERT INTO XYZ (X, Y) VALUES (8, 13);

CREATE PROCEDURE CalculateZ
AS
    SELECT X, Y, Z = X + Y
    INTO XYZ
    FROM XYZ;
GO

EXECUTE CalculateZ;
GO

INSERT INTO XYZ (X, Y) VALUES (13, 21);

EXECUTE CalculateZ;
GO

【问题讨论】:

标签: sql


【解决方案1】:

没有必要这样做。相反,创建 z 作为计算列:

CREATE TABLE XYZ (
    X INT NOT NULL,
    Y INT NOT NULL,
    Z AS (X + Y)
);

Z 然后自动计算(当行中的数据更改或查询时)。无需更新表。也不需要存储过程。

【讨论】:

  • 是的,这肯定更好。
【解决方案2】:

在你的存储过程中试试这个。您想要原始表的 UPDATE,而不是 INSERT

update XYZ
set z = x + y

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2019-09-29
    • 1970-01-01
    • 2021-12-05
    • 2022-01-12
    相关资源
    最近更新 更多