mssql2005 中的大型数据库,具有很大的代码库,具体取决于该数据库的结构。
我有大约 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
我想创建所有这些表的单一视图,以便使用此数据灾难的新代码不需要了解所有不同的媒体表。我还想将此视图用于插入和更新语句。显然,旧代码仍将依赖表来更新。
在阅读了有关在 mssql2005 中创建视图的 msdn 页面后,我认为使用 SCHEMABINDING 的视图就足够了。
我将如何创建这样一个可更新的视图?
这是正确的方法吗?