2016-07-13 9 views
0

ユーザーが名前、dobなどを入力するテーブルがあり、私は他の列から自動的に入力されるUser_Name列を持っています。例えば、入力の場合SQl Server 2012 autofill 1列から別の列

があります。Name - ジョン・ドウ、DOB - 1900年1月1日

私は(私はすでに達成するために、列の部品を連結するためのアルゴリズムを持っているUser_Name列が自動的にjohndoe01011900が移入させたいです

ユーザーがすべてのターゲット列の入力を完了すると、列がいっぱいになる方法(SQL、トリガー)を知っておく必要があります。ユーザーがスキップして順番にデータを入力しないとどうなりますか?もちろん必要な列は(nullではない)です。

+0

はどうなりますか?それはUserNameにカスケードして、新しいユーザー名を取得する必要がありますか?列は常に同期する必要がありますか? –

答えて

1

これはそれを行う必要があります。

を使用すると、次の計算式で算出されたフィールドを使用することができます。私は、一時テーブルを使用しているが、これはのように通常のテーブルで同じである以下のサンプルで

LOWER(REPLACE(Name, ' ', ''))+CONVERT( VARCHAR(10), DateOfBirth, 112)) 

をよく

SAMPLE:

CREATE TABLE #temp(Name  VARCHAR(100) 
       , DateOfBirth DATE 
       , CalcField AS LOWER(REPLACE(Name, ' ', ''))+CONVERT( VARCHAR(10), DateOfBirth, 112)); 

INSERT INTO  #temp(Name 
       , DateOfBirth) 
VALUES 
     ('John Doe' 
    , '01/01/1900'); 

SELECT * 
FROM #temp; 

結果:彼らはその後、自分の名前を編集した場合

enter image description here

+0

したがって、ユーザーが必要なすべてのフィールドを入力した後に新しいレコードを挿入すると、彼のフィールドに記入されますか?既存のレコードが更新された場合(女性は時々夫の姓をとる)、計算されたフィールドの更新はありますか? – John

+0

BTWユーザーは、ODBCリンクテーブルを介してPC上のローカルアプリケーション(ExcelまたはAccess)を介して永久生産テーブルにデータを代入します。私は数多くのアプリがあるかもしれないので、地元のアプリがフィールドを計算しないようにし、フィールドの計算方法を変更するのは、 – John