Base de données énorme dans mssql2005 avec une grande base de code en fonction de la structure de cette base de données.Vue modifiable dans mssql avec plusieurs tables et valeurs calculées
J'ai environ 10 tables similaires, ils contiennent tous le nom de fichier ou le chemin d'accès complet au fichier. Le chemin d'accès complet dépend toujours de l'identifiant de l'élément, cela n'a donc aucun sens de le stocker dans la base de données. Obtenir des données utiles sur ces tables va un peu comme ceci:
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
Je voudrais créer une vue unique de toutes ces tables afin que le nouveau code à l'aide de ces données-catastrophe n'a pas besoin de connaître tous les différentes tables de médias. J'aimerais aussi utiliser cette vue pour les instructions d'insertion et de mise à jour. Évidemment, l'ancien code reposerait toujours sur les tables pour être à jour. Après la lecture de la page msdn à propos de creating views in mssql2005 je ne pense pas qu'une vue avec SCHEMABINDING serait suffisante.
Comment créer une telle vue pouvant être mise à jour?
Est-ce la bonne solution?
Vous pouvez réellement mettre à jour des vues sur la base de l'Union à condition qu'ils contiennent une colonne paritioning qui identifiera la table que vous mettez à jour. – Quassnoi