このデータベースの構造に応じて大きなコードベースを持つmssql2005の巨大なデータベース。複数のテーブルと計算値を持つmssqlの更新可能なビュー
私は約10の類似したテーブルを持っています。それらはすべて、ファイル名またはファイルへのフルパスのいずれかを含んでいます。フルパスは常にアイテムIDに依存するため、データベースに格納するのは意味がありません。これらのテーブルのうち、有用なデータを取得することはほとんどない。このように書き:このデータ・災害を使用して、新しいコードがに関するすべてを知っている必要がないように
SELECT a.item_id
, a.filename
FROM (
SELECT id_item AS item_id
, path AS filename
FROM xMedia
UNION ALL
-- media_path has a different collation
SELECT item_id AS item_id
, (media_path COLLATE SQL_Latin1_General_CP1_CI_AS) AS filename
FROM yMedia
UNION ALL
-- fullPath contains more than just the filename
SELECT itemId AS item_id
, RIGHT(fullPath, CHARINDEX('/', REVERSE(fullPath))-1) AS filename
FROM zMedia
-- real database has over 10 of these tables
) a
私はすべてのこれらのテーブルの単一のビューを作成したいのですが異なるメディアテーブル。私はまた、このビューを挿入ステートメントと更新ステートメントに使用したいと思います。明らかに、古いコードはテーブルに依存して最新のものになるでしょう。
約creating views in mssql2005のmsdnページを読んだあと、私はSCHEMABINDINGのビューでは十分ではないと思います。
このような更新可能なビューを作成するにはどうすればよいですか?
これは正しい方法ですか?
あなたは、実際に、彼らはあなたが更新しているテーブルを識別しますparitioning列が含まれていることを提供UNIONさんに基づいてビューを更新することができます。 – Quassnoi