web-dev-qa-db-fra.com

Comment cacher / désactiver des tables sans les laisser tomber pour vérifier la redondance?

Je dois maintenir et étendre un ancien système hérité contenant des méthodes WebService et des tables de base de données qui ne sont plus utilisées. Comme je ne suis pas tout à fait sûr que les tables sont vraiment redondantes, j'ai peur de les laisser tomber.

Y a-t-il un autre moyen d'atteindre le même effet (les tables ne peuvent plus être utilisées) sans les laisser tomber? Mon idée était de les transférer à un schéma différent (par exemple, Deleted) à partir de la valeur par défaut actuelle, dbo.

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Deleted')
BEGIN
   EXEC('CREATE SCHEMA Deleted')
END

ALTER SCHEMA Deleted TRANSFER dbo.TableName;

Y a-t-il une autre option ou existe-t-il des inconvénients à l'approche de schéma?

12
Tim Schmelter

Y a-t-il une autre façon d'atteindre les mêmes (les tables ne peuvent plus être utilisées) sans les laisser tomber?

Un changement de schéma est une opération très rapide - il est nécessaire de changer de métadonnées. L'idée originale que j'ai obtenue était de Blog d'Aaron Bertrand - Schema Switch-A-Roo .

Vous pouvez suivre les étapes de ma réponse ici

Évidemment, il existe d'autres méthodes telles que SP_RENAME N'OLD Table ', N'New Table' ou nier simplement les autorisations à la table.

7
Kin Shah

Quelques autres options doivent simplement renommer les tables ou si elles ont des index clusters, vous pouvez désactiver l'index en cluster.

12
Chad Mattox

Supprimer les Autorisations sur la table du (s) rôle (s)/compte (s)/compte (s) qui [pourrait] l'utiliser.

Si quelque chose souffle, mettez-les en arrière [rapidement].

Astuce: Utiliser un script pour faire ces changements serait une bonne idée de ces changements, vraiment bonne idée.

6
Phill W.