Estou usando o SQL Server 2008 R2 e criando bancos de dados por meio de implantação contínua.
Em nosso sistema, as configurações padrão de crescimento automático de 1Mb / 10% no SQL Server funcionam mal com nossos dados. Principalmente porque temos um aplicativo herdado que nos impede de alterar muito o esquema. Gostaríamos que as configurações do banco de dados fossem definidas no nível da instância para podermos alterá-las para implantações em etapas.
Eu li em vários lugares que as configurações padrão de um novo banco de dados são baseadas nas configurações de 'model', mas parece que isso só funciona clicando em novo banco de dados na interface do SQL Management studio e não em um script, por exemplo, CREATE DATABASE [MyDb].
msdn.microsoft.com/en-us/library/ms186388(v=sql.105).aspx
sqlservercentral.com/Forums/Topic1065073-391-1.aspx
Alguém realmente conseguiu isso para trabalhar com um script de criação? Existe outra maneira de definir o crescimento automático por instância do servidor?
fonte
CREATE DATABASE
que não pode simplesmente especificá-lo em seu script?Respostas:
Para o SQL Server 2005+, você pode usar o seguinte:
Isso recuperará as definições de arquivo para o banco de dados de modelos.
Posteriormente, você pode usá-lo em CREATE DATABASE ou ALTER DATABASE.
Na verdade, o SSMS usa o SMO para recuperar esses parâmetros e cria um script parecido com:
Se o seu aplicativo estiver criando o banco de dados e você não puder modificá
-lo, será necessário usar ALTER DATABASE após a criação:
Isso requer pelo menos a permissão ALTER DATABASE
(implícita na permissão do servidor ALTER ANY DATABASE).
Obviamente, você pode gerar esse script usando o primeiro exemplo de código (FROM sys.master_files).
Eu não usaria sysaltfiles para o SQL Server 2008R2 porque está obsoleto.
Boa sorte,
Roi
fonte
E se:
fonte