Есть некоторые древние приложения, которые в процессе установки делают обращение к экземпляру SQL Server, создают там базу данных и выполняют её первоначальное наполнение. В случае, если такие приложения хотят, чтобы их база данных имела определённый уровень совместимости (compatibility level), но сами при этом не выполняют настройку этого уровня в процессе создания и инициализации БД, может возникнуть необходимость изменения уровня совместимости, используемого по умолчанию в экземпляре SQL Server. Рассмотрим пример того, как это можно "провернуть".
Предположим, у нас есть экземпляр SQL Server 2012, на котором должна быть развернута БД некоторого старого приложения, которое хочет чтобы эта БД имела уровень совместимости с SQL Server 2005. Однако при создании для новых баз в нашем случае будет назначаться уровень совместимости SQL Server 2012 (110). Попробуем сделать так, чтобы по умолчанию уровень совместимости выставлялся в SQL Server 2005 (90).
Для начала на нашем экземпляре SQL Server выполним запрос, который покажет установленный уровень совместимости для всех баз:
SELECT [name],[compatibility_level] FROM [model].[sys].[databases]
Как видим, уровень совместимости по умолчанию для новых баз в нашем экземпляре установлен в 110, так как он определяется уровнем базы model. Информацию о возможных уровнях совместимости на разных версиях SQL Server можно найти в онлайн-документе:
MSDN Library - Transact-SQL Reference (Database Engine) - ALTER DATABASE Compatibility Level
Соответственно, чтобы изменить уровень совместимости по умолчанию для вновь создаваемых баз до уровня SQL Server 2005, выполним запрос:
ALTER DATABASE [model] SET compatibility_level = 90 SELECT [name],[compatibility_level] FROM [model].[sys].[databases]
Обратите внимание на то, что такой запрос изменит на указанный уровень совместимости не только базу model, но и базу tempdb
После этого снова запустим наше приложение создающее новую базу и убедимся в том, что теперь уровень базы установлен в SQL Server 2005 (90).
Чтобы снова вернуть изначально установленный уровень совместимости выполним запрос:
ALTER DATABASE [model] SET compatibility_level = 110
Чем такие манипуляции могут обернуться на продуктивных экземплярах SQL Server с некоторым количеством разных БД предсказывать не возьмусь
Альтернативный вариант извращения) поставить sql2005 на windows server 2012r2 как в этой статье: https://www.linkedin.com/pulse/20141124213344-99052643-how-to-successfully-install-sql-server-2005-in-windows-8
Ну это уже наверно через чур.