8 votes

Comment créer une table système SQL Server

Je suis en train de développer un site qui utilise Entity Framework code first avec des migrations. Après chaque version majeure, je prends une copie des données de production et la configure dans mon environnement de développement. J'ai constaté que pour utiliser une copie des données de production avec les migrations, il est nécessaire de copier le fichier __MigrationHistory de l'ancienne image de la base de données de développement vers la copie de la base de données de production.

Cela fonctionne bien, à l'exception d'un détail ennuyeux : l'option _MigrationHistory est considérée comme une table utilisateur et non comme une table système. Ce n'est pas un problème grave tant que je n'oublie pas de le filtrer dans mes diffs de base de données. Mais je préférerais que la nouvelle table __MigrationHistory soit une table système, comme c'est le cas dans une base de données créée par les migrations EF.

Existe-t-il un moyen de créer ou de copier une table SQL Server pour qu'elle apparaisse comme une table système ?

6voto

Dilhan RK Points 114

Utilisez la commande suivante pour changer votre table en objet système. Elle apparaîtra alors dans Objets système.

EXEC sys.sp_MS_marksystemobject _MigrationHistory

1voto

SQLJax Points 522

D'après ce que j'ai compris, ce n'est pas une pratique recommandée.

Voir l'article de TechNet

Comme solution possible, je suggère de déclarer un nouveau schéma, tel que ETL ou Mig, et d'attribuer des mesures de sécurité à ce schéma, si vous êtes préoccupé par de telles choses. Cela permettrait de séparer la table '_MigrationHistory' du reste des tables utilisateur.

Edit : Je viens de trouver ceci dans une autre question, peut-être utile si vous êtes décidé à le faire. StackOverflow

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X