Таблицы базы данных SQL Server по умолчанию

8

Когда я добавляю новую базу данных на наш сервер разработки (используя SSMS), она автоматически создает 5 таблиц.

Это копии таблиц приложений, которые уже существуют в другой базе данных.

Я предполагаю, что это недавняя особенность SQL Server, я не знаю, где таблицы могут быть помечены как «общие» или что-то подобное, и поэтому они автоматически добавляются в новые базы данных.

Но как я могу остановить это?

Во избежание путаницы эта база данных не является сценарием, она создается непосредственно из графического интерфейса SSMS (щелкните правой кнопкой мыши Базы данных> Новая база данных)

(перенесено из StackOverflow)

CompanyDroneFromSector7G
источник
4
Проверьте модель базы данных из системных баз данных. Там тоже есть таблицы?
vonPryz
Да те же таблицы - я предполагаю, что причина?
CompanyDroneFromSector7G
Да, modelэто «модель» базы данных, которая используется в качестве источника для каждой следующей созданной базы данных.
Марчин С.
Ничего себе, я никогда не знал это (только с SQL Server, начиная с версии 6.3),
CompanyDroneFromSector7G
Эта функция, безусловно, была там, по крайней мере, с SQL Server 2005 (возможно, раньше).
Андрей М

Ответы:

15

Это происходит (на основе обсуждения в комментариях), поскольку таблицы существуют в modelбазе данных системы. Согласно документации (мой акцент):

Если вы измените базу данных модели, все базы данных, созданные впоследствии, будут наследовать эти изменения . Например, вы можете установить разрешения или параметры базы данных или добавить такие объекты, как таблицы , функции или хранимые процедуры. Свойства файла базы данных модели являются исключением и игнорируются, за исключением начального размера файла данных.

Как решение, удаление таблиц modelостановит это явление.

vonPryz
источник
Стоит добавить, что есть некоторые исключения, такие как TempDB отдых после перезапуска сервера. В этом случае TempDBиспользуются все собственные свойства файла, включая начальный размер файлов данных.
Марчин С.