- Fiz um backup de um banco de dados do SQL Server em execução no SQL Server 2008.
- Eu restaurei esse backup em uma instância do SQL Server 2012.
- Eu defini o nível de compatibilidade na instância restaurada para SQL Server 2012 (110).
O que isso faz com o banco de dados?
Será que, por exemplo,
- fazer com que procedimentos armazenados sejam examinados quanto a incompatibilidades
- causar quaisquer atualizações em todas as páginas de dados no banco de dados
- Causa atualizações nas páginas de dados à medida que são acessadas no futuro
- Causar erros no futuro se forem executados procedimentos armazenados ou exibições que usam sintaxe incompatível
Onde nos livros on-line, ou onde, posso encontrar mais detalhes?
O nível de compatibilidade simplesmente altera a sintaxe da linguagem suportada pelas instruções SQL. Isso fará com que todos os planos de execução sejam expirados e os forçará a serem recompilados. Não tem nada a ver com o mecanismo de armazenamento de dados ou com a maneira como os dados são gravados no disco.
Depois que um banco de dados é anexado a uma instância SQL 2012, ele está no formato de armazenamento SQL 2012 e não pode ser movido de volta para uma versão mais antiga do SQL (independentemente da configuração do nível de compatibilidade definido).
O link fornecido por @Shark ( http://msdn.microsoft.com/en-us/library/bb510680%28v=sql.110%29.aspx ) nos comentários fornece algumas leituras adicionais sobre o assunto.