2009-03-12 20 views
3

これは制約条件であるかどうかはわかりませんが、挿入または更新が実行されたときに設定されている値をテーブルの "UserName"列で無視し、小文字に変換された "DisplayUserName"列の値を格納します。また、「DisplayUserName」が変更された場合は、「UserName」も「DisplayUserName」が低くなるように更新する必要があります。小文字の制約 - Sql Server

ありがとうございます!

答えて

1

これを行う一般的な方法は、挿入と更新時に起動するトリガを使用することです。私は右のそれを得ていなかったと思うので

)=、

CREATE TRIGGER updateDisplayName_trigger ON Users 
FOR INSERT, UPDATE 
AS 
IF UPDATE(UserName) 
UPDATE Users SET DisplayUserName = Lower(UserName) 

はちょうどあなたの特定のビジネスルールにそれを調整します

http://msdn.microsoft.com/en-us/magazine/cc164047.aspx

トリガーのコードは次のようなものでなければなりません

1

更新を処理するためにトリガーを作成する必要があります。

5

計算された列を探しているようです。ような何か:

CREATE TABLE [dbo].[SampleTable](
    [ID] [int] IDENTITY(1, 1) NOT NULL, 
    [DisplayUserName] [varchar](100) NOT NULL, 
    [UserName] AS (lower([DisplayUserName])) 
) ON [PRIMARY] 

この方法では、ユーザー名を設定する必要はありませんでしょう、それは定義によってDisplayUserNameから小文字の値です。

関連する問題