我有一个column1,它当前匹配同一个表中另一个column2中的所有内容。我现在需要在添加新行并填写column2时自动更新column1。这是在SQL中。
我在想
ALTER TABLE dbo.Table
alter column column1 as column2
可能有效,但似乎没有。
是否可以使用alter语句(即没有触发器)来执行此操作?
答案 0 :(得分: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设为computed column:
ALTER TABLE Table
ADD Column2 AS (Column1)
如果始终希望两者同步,我建议您删除现有列并添加到具有相同名称的新计算列中。
第三种方法是创建一个只暴露Column1两次的VIEW:
CREATE VIEW MyView AS
SELECT Column1, Column1 as Column2 FROM Table