Definir cmptlevel como 80 em um SQL-Server 2005 inibe o uso de PIVOT e APPLY, mas não afeta o uso de Analytical Functions. Existe algum racional por trás disso?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
MSDN ALTER DATABASE Compatibility Level explica o comportamento dos vários níveis. (basta rolar para baixo e você encontrará as tabelas de comparação para os seguintes tópicos)
você pode encontrar tabelas de comparação mais específicas se apenas alterar a versão no menu superior do MSDN (elas estão vinculadas às 3 principais versões na lista a seguir)
120 = SQL Server 2014
Diferenças entre os níveis de compatibilidade inferiores e o nível 120
Alguns fundamentos que observei, mas isso não é exaustivo e é minha suposição
O nível de compatibilidade não é uma coisa de tudo ou nada. Ele fornece compatibilidade parcial com versões anteriores enquanto você corrige problemas.
Um exemplo trival com dicas LOCK
e
Por que isso agora é obrigatório, eu não sei. A ver com CTEs?
Para PIVOT e APPLY, suspeito que uma instrução SQL usando essas é simplesmente uma sintaxe ilegal do SQL Server 2000, enquanto ROW_NUMBER é apenas uma função desconhecida e "menos" crítica
Um exemplo usando CROSS APPLY. Para 80, esta é uma sintaxe ilegal do SQL Server 2000.
Existem muitas perguntas no SO sobre erros devido a níveis mais baixos em versões mais recentes para você revisar e, com sorte, entender
FYI, lista completa de 80-90 e 90-100 diferenças