Tabelle "predefinite" del database SQL Server


8

Quando aggiungo un nuovo database al nostro server di sviluppo (usando SSMS), crea automaticamente 5 tabelle.

Queste sono copie delle tabelle delle applicazioni che esistono già in un altro database.

Suppongo che questa sia una recente funzionalità di SQL Server che non conosco dove le tabelle possono essere contrassegnate come 'comuni' o alcune di queste, e quindi vengono aggiunte automaticamente ai nuovi database.

Ma come posso impedire che accada?

A scanso di confusione, questo database non è sottoposto a script, ma viene creato direttamente dalla GUI di SSMS (fare clic con il pulsante destro del mouse su Database> Nuovo database)

(spostato da StackOverflow)


4
Controlla il database dei modelli dai database di sistema. Contiene anche le tabelle?
vonPryz,

Sì, le stesse tabelle - suppongo che sia la causa?
CompanyDroneFromSector7G

Sì, modelè il database "modello" che viene utilizzato come origine per ogni successivo database creato.
Marcin S.

Wow, non l'ho mai saputo (utilizzo SQL Server solo dalla versione 6.3)
CompanyDroneFromSector7G

La funzionalità è stata sicuramente presente almeno da SQL Server 2005 (forse prima).
Andriy M,

Risposte:


15

Ciò accade (in base alla discussione nei commenti) perché le tabelle esistono nel modeldatabase di sistema. Secondo la documentazione (la mia enfasi):

Se si modifica il database del modello, tutti i database creati successivamente erediteranno tali modifiche . Ad esempio, è possibile impostare autorizzazioni o opzioni del database o aggiungere oggetti come tabelle , funzioni o stored procedure. Le proprietà del file del database modello sono un'eccezione e vengono ignorate ad eccezione della dimensione iniziale del file di dati.

Come soluzione, far cadere i tavoli da modelfermerà questo fenomeno.


Vale la pena aggiungere che ci sono alcune eccezioni, come la TempDB ricreazione dopo il riavvio del server. In tal caso, TempDButilizza tutte le proprietà dei propri file, inclusa la dimensione iniziale dei file di dati.
Marcin S.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.