【发布时间】:2009-03-16 11:32:30
【问题描述】:
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
我想为所有这些表创建一个视图,这样使用这种数据灾难的新代码就不需要了解所有不同的媒体表。我还想将此视图用于插入和更新语句。显然,旧代码仍将依赖表来保持最新状态。
在阅读了关于 creating views in mssql2005 的 msdn 页面后,我认为使用 SCHEMABINDING 的视图是不够的。
如何创建这样一个可更新的视图?
这是正确的方法吗?
【问题讨论】:
标签: sql-server database sql-server-2005 union