1

以下に示すように、3つの列とデータを持つt-sqlのテーブルがあります

fname  lname  fullname

              Amie Dann
              John Hamm
              Charlie Key

同じテーブルの列からデータfnameと列を挿入するために、この t-sql スクリプトを作成しました。lnamefullname

INSERT INTO [dbo].[profile] (fname)
LTRIM(RTRIM(SUBSTRING(name, 0, CHARINDEX(' ', fullname)))) As FName
FROM [dbo].[profile]

INSERT INTO [dbo].[profile] (lname)
LTRIM(RTRIM(SUBSTRING(name, CHARINDEX(' ', fullname)+1, 8000)))As LName
FROM [dbo].[profile]

上記のスクリプトは、fullname列から同じテーブルの列に値を挿入しました。結果は以下のとおりです。fnamelname

firstname  lastname  fullname

Amie       Dann       Amie Dann
John       Hamm       John Hamm
Charlie    Key        Charlie Key

トリガーの作成は初めてです。誰かが値を変更したり、同じテーブルの列に新しい値を追加したりするたびに、テーブルの列の値fnameを起動して追加または更新するトリガーを作成する方法は?lnamefullname

4

2 に答える 2

0

トリガーの代わりに計算列に注目します。

MSDN からのリンク

あなたの構文は次のようになると思います:

ALTER TABLE [dbo].[profile] ADD [lname] AS LTRIM(RTRIM(SUBSTRING(name, CHARINDEX(' ', fullname)+1, 8000)))

8000 を使用する代わりに、LEN 関数を使用して必要な全長を決定することを検討するかもしれません。

于 2013-07-12T18:22:14.977 に答える