Tables «par défaut» de la base de données SQL Server

8

Lorsque j'ajoute une nouvelle base de données à notre serveur de développement (en utilisant SSMS), il crée automatiquement 5 tables.

Ce sont des copies des tables d'application qui existent déjà dans une autre base de données.

Je suppose que c'est une fonctionnalité récente de SQL Server que je ne connais pas où les tables peuvent être marquées comme «communes» ou certaines, et sont donc ajoutées automatiquement aux nouvelles bases de données.

Mais comment puis-je empêcher que cela se produise?

Pour éviter toute confusion, cette base de données n'est pas scriptée, elle est créée directement à partir de l'interface graphique SSMS (cliquez avec le bouton droit sur Bases de données> Nouvelle base de données)

(déplacé de StackOverflow)

CompanyDroneFromSector7G
la source
4
Consultez la base de données modèle à partir des bases de données système. Contient-il aussi les tableaux?
vonPryz
Oui, les mêmes tableaux - je suppose que c'est la cause?
CompanyDroneFromSector7G
Oui, modelest la base de données "modèle" qui est utilisée comme source pour chaque prochaine base de données créée.
Marcin S.
Wow, je ne l'ai jamais su (n'utilise SQL Server que depuis la version 6.3)
CompanyDroneFromSector7G
La fonctionnalité existe certainement depuis au moins SQL Server 2005 (peut-être plus tôt), cependant.
Andriy M

Réponses:

15

Cela se produit (sur la base de la discussion dans les commentaires) car les tables existent dans la modelbase de données système. Selon la documentation (mon accent):

Si vous modifiez la base de données modèle, toutes les bases de données créées ultérieurement hériteront de ces modifications . Par exemple, vous pouvez définir des autorisations ou des options de base de données, ou ajouter des objets tels que des tables , des fonctions ou des procédures stockées. Les propriétés de fichier de la base de données modèle sont une exception et sont ignorées à l'exception de la taille initiale du fichier de données.

En guise de solution, la suppression des tables modelarrêtera ce phénomène.

vonPryz
la source
Il vaut la peine d'ajouter qu'il existe quelques exceptions, comme les TempDB loisirs après le redémarrage du serveur. Dans ce cas, TempDButilise toutes les propriétés de fichier, y compris la taille initiale des fichiers de données.
Marcin S.