Standardtabellen der SQL Server-Datenbank

8

Wenn ich unserem Entwicklungsserver eine neue Datenbank hinzufüge (mithilfe von SSMS), werden automatisch 5 Tabellen erstellt.

Dies sind Kopien von Anwendungstabellen, die bereits in einer anderen Datenbank vorhanden sind.

Ich gehe davon aus, dass dies eine neuere SQL Server-Funktion ist, von der ich nicht weiß, wo Tabellen als "allgemein" oder ähnliches markiert werden können, und daher automatisch zu neuen Datenbanken hinzugefügt wird.

Aber wie kann ich das verhindern?

Um Verwirrung zu vermeiden, ist diese Datenbank nicht mit Skripten versehen, sondern wird direkt über die SSMS-GUI erstellt (Rechtsklick auf Datenbanken> Neue Datenbank).

(aus StackOverflow verschoben)

CompanyDroneFromSector7G
quelle
4
Überprüfen Sie die Modelldatenbank aus Systemdatenbanken. Enthält es auch die Tabellen?
vonPryz
Ja die gleichen Tabellen - ich nehme an, das ist die Ursache?
CompanyDroneFromSector7G
Ja, es modelhandelt sich um eine "Modell" -Datenbank, die als Quelle für jede nächste erstellte Datenbank verwendet wird.
Marcin S.
Wow, das wusste ich nie (ich benutze SQL Server erst seit Version 6.3)
CompanyDroneFromSector7G
Die Funktion ist jedoch seit mindestens SQL Server 2005 (möglicherweise früher) vorhanden.
Andriy M

Antworten:

15

Dies geschieht (basierend auf der Diskussion in Kommentaren), weil die Tabellen in der modelSystemdatenbank vorhanden sind. Wie pro der Dokumentation (Hervorhebung von mir):

Wenn Sie die Modelldatenbank ändern, erben alle anschließend erstellten Datenbanken diese Änderungen . Sie können beispielsweise Berechtigungen oder Datenbankoptionen festlegen oder Objekte wie Tabellen , Funktionen oder gespeicherte Prozeduren hinzufügen . Dateieigenschaften der Modelldatenbank sind eine Ausnahme und werden mit Ausnahme der Anfangsgröße der Datendatei ignoriert.

Wenn Sie die Tabellen löschen, modelwird dieses Phänomen als Lösung gestoppt.

vonPryz
quelle
Es lohnt sich hinzuzufügen, dass es einige Ausnahmen gibt, z. B. die TempDB Wiederherstellung nach dem Neustart des Servers. In diesem Fall TempDBwerden alle eigenen Dateieigenschaften verwendet, einschließlich der Anfangsgröße der Datendateien.
Marcin S.