0
に保存されている列の名前を持つ一つのテーブルから取得した値は、私はいくつかのテーブルを持っています。これらはテーブルのやや簡略化されたバージョンです。SQL Serverの - 別のテーブル
UsersTable:
UserId FirstName LastName MiddleInit Suffix Age Position
1 John Graham P. Jr. 35 Analyst II
2 Bill Allen T. III 45 Programmer I
3 Jenny Smith K. 25 Systems Engineer
4 Gina Todd J. 55 Analyst II
TableTypes:
TableTypeId TableType
1 Names
2 Positions
3 Age
TableTypeIdはTableFieldsのTableTypesと外部キーの主キーです。
TableFields:
FieldId TableTypeId FieldName Description
1 1 FirstName descr1
2 1 LastName descr2
3 1 MiddleInit descr3
4 1 Suffix descr4
FieldIdは、TableFieldsの主キーであり、ModifiedUsersTableの外部キーです。
それは次のようになりますので、私はUsersTableからの値でModifiedUsersTableを入力する必要があり:
ModifiedUsersTable:
Id UserId FieldId Value
1 1 1 John
2 1 2 Graham
3 1 3 P.
4 1 4 Jr.
5 2 1 Bill
など
私はTableFieldsでフィールド名の欄に記載されていUsersTableから列のみを取得する必要があります表。私は、行数(fieldNames)または名前をTableFieldsで事前に知っていません。 PIVOTを使うべきだと思った。列名のカンマ区切り文字列を取得し、列に動的に変換できます。
しかし、それは私に必要なものを私に与えるようではありません。 ModifiedUsersTableをどのように埋めるのですか? 提案がありますか? ありがとう!
を移入するためのスクリプトは、あなたのModifiedUsersTableは、ユーザーID列を持っていないでしょうか? – Lamak
はい、ありがとうございますLamak – Boroda
なぜこのデザインのテーブルをお持ちになりたいですか?特にあなたは今、完全に良いユーザーテーブルを持っているからですか?なぜEAVテーブルがしばしば非常に貧弱なデータベース設計テクニックであるのかを読んでおく必要があります。 – HLGEM