質問

私はSQL Server 2005で、次のテーブルスキーマを持っていると私は、私は構造的な変更を永続的なものことができるまで私が書いている一部のクエリのためのインデックス付きビューにそれを非正規化したいと思います。

次のようにテーブルである

Writing
(
DocumentSerial int
Grader1_ID int
Grade_1 int
Grader2_ID int 
Grade_2 int 
Grader3_ID int 
Grade_3 int
)

Users
(userID int,
firstname,
lastname
)
年生のいずれか1年生、年生2、または3年生

である

Iは各年生/グレード/ドキュメントの組み合わせに対して単一の行を有するテーブルを望ん

表示私は用途にUNIONを書いたので、それはインデックスません

select documentSerial,grader1_id as grader_id, grade_1 as grade ,1 as sequence
 from Writing w inner join User U on w.grader1_id=u.userid
UNION
select documentSerial,grader2_id as grader_id, grade_2 as grade ,2 as sequence
 from Writing w inner join User U on w.grader2_id=u.userid
UNION
select documentSerial,grade31_id as grader_id, grade_3 as grade ,3 as sequence
 from Writing w inner join User U on w.grader3_id=u.userid

問題がある - SQLできませんインデックス組合とビュー...

役に立ちましたか?

解決

なぜそれはあなたが適切なテーブルを使用することができたときに、インデックス付きビューする必要もありません。

SELECT x.*
  INTO normalized_table
  FROM (select documentSerial,grader1_id as grader_id, grade_1 as grade ,1 as sequence
          from Writing w 
          join User U on w.grader1_id = u.userid
        UNION ALL
        select documentSerial,grader2_id as grader_id, grade_2 as grade ,2 as sequence
          from Writing w 
          join User U on w.grader2_id = u.userid
        UNION ALL
        select documentSerial,grade31_id as grader_id, grade_3 as grade ,3 as sequence
          from Writing w 
          join User U on w.grader3_id = u.userid) x

私はあなたのデータを同期させる手間を持っていないので、あなたはおそらくビューを望んでいることを理解しています。他の唯一の選択肢ではないインデックスに図である...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top