2016-04-04 16 views
0

モデル内で列の名前を変更する必要があるテーブルがあります。私は「第1の」モデルを使用するプログラムと、新しい「第2の」モデルを使用するプログラムとを有する。 (モデル間の移行は徐々に進む)。だから私は、両方の列を維持することを決めた:同じテーブル内の2つの列を同期

Document 
    creator 
    coCreator // old column 
    creator2 // new column 
    creator3 // another new column 

私は同じ値で、すなわち常に、coCreatorcreator2同期を維持したいです。私はこれを達成するためのトリガ構文と混同しています。

私はMS SQL Serverを使用しています。

両方の列が外部キーです。それはいくつかの未知の問題を抱えていますか?

ありがとうございます。

+0

は、このtsqlまたはmy sqlですか? –

+0

TSQL。投稿が修正されました。 –

+0

あなたは正確に何について混乱していますか?トリガーであなたの試行を投稿して、それをデバッグすることができます。 –

答えて

0

本当にこれを実行したい場合は、トリガーを使用しない方が良いと思います。私はここでComputedカラムを使うことができると思います。いくつかの詳細情報を参照してください:https://msdn.microsoft.com/en-us/library/ms188300.aspx

COMPUTED列は外部キーの一部にすることはできませんが、それはcreator2が行うことができるため、まったく必要ありません。

例::

create table test (
ID int IDENTITY(1,1) PRIMARY KEY, 
creator2 varchar(255) NULL, 
coCreator AS (creator2) PERSISTED NULL 
); 

PERSISTEDは、データがディスク上に保存されることを意味します。オフコースでは、既存のテーブルを移行する必要がありますが、これは非常に簡単です。

+1

アプリケーションがcoCreatorカラムに挿入するとどうなりますか? – Hogan

+0

不可能です...実際に問題になる可能性があります – Jeffrey

関連する問題