0

我有一个 column1 当前匹配同一个表中另一个 column2 中的所有内容。现在,当我添加新行并填写 column2 时,我需要 column1 自动更新。这是在 SQL 中。

我刚在想

ALTER TABLE dbo.Table
alter column column1 as column2

可能有效,但似乎没有。

是否可以使用类似于 alter 语句的内容(即没有触发器)来执行此操作?

4

1 回答 1

2

每当 Column1 更改时,您可以使用TRIGGER自动更新 Column2:

--My SQL Server isn't up to par, there's probably a better way to do this
CREATE TRIGGER MyTrigger
ON Table
AFTER UPDATE
AS
    UPDATE Table
    SET Column2 = Column1
    WHERE Id IN (SELECT DISTINCT Id FROM Inserted)

您还可以使 Column2 成为计算列

ALTER TABLE Table
  ADD Column2 AS (Column1)

如果您总是希望两者保持同步,我建议您删除现有列并添加到具有相同名称的新计算列中。

第三种方法是创建一个简单地公开 Column1 两次的 VIEW:

CREATE VIEW MyView AS
  SELECT Column1, Column1 as Column2 FROM Table
于 2012-08-15T22:42:09.650 回答