0

同じテーブルの別のcolumn2のすべてに現在一致するcolumn1があります。新しい行を追加してcolumn2に入力すると、column1が自動的に更新されるようになりました。これはSQLにあります。

私が考えていた

ALTER TABLE dbo.Table
alter column column1 as column2

動作する可能性がありますが、動作しないようです。

alterステートメントに沿ったもの(つまり、トリガーなし)でこれを行うことは可能ですか?

4

1 に答える 1

2

TRIGGERを使用すると、Column1が変更されるたびに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)

2つを常に同期させたい場合は、既存の列を削除して、同じ名前の新しい計算列に追加することをお勧めします。

3番目の方法は、Column1を2回公開するだけのVIEWを作成することです。

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