我有一个 column1 当前匹配同一个表中另一个 column2 中的所有内容。现在,当我添加新行并填写 column2 时,我需要 column1 自动更新。这是在 SQL 中。
我刚在想
ALTER TABLE dbo.Table
alter column column1 as column2
可能有效,但似乎没有。
是否可以使用类似于 alter 语句的内容(即没有触发器)来执行此操作?
我有一个 column1 当前匹配同一个表中另一个 column2 中的所有内容。现在,当我添加新行并填写 column2 时,我需要 column1 自动更新。这是在 SQL 中。
我刚在想
ALTER TABLE dbo.Table
alter column column1 as column2
可能有效,但似乎没有。
是否可以使用类似于 alter 语句的内容(即没有触发器)来执行此操作?
每当 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