Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 653
1 создаю на 2016 базу и меняю COMPATIBILITY_LEVEL на 100 (проверяю - реально стоит 100)
2 создаю таблицу и кидаю туда данные
3 отсоединяю и кидаю на другой сервант
4. другой сервант 2008 пишет что подсоединить не может ибо 852 версия (это версия 2016-ого
как обозначено вот здесь http://sqlserverbuilds.blogspot.ru/2014/01/sql-server-internal-database-versions.html)

а может только 655 - т.е как-будто версия и COMPATIBILITY_LEVEL не связаны что-ли

если честно я в затыке - как mdf создать на 2016-ом и кинуть на 2008-ом по простому, ведь вроде
по всем мануалам должно...могу конечно в текстовой скидывать данные для переброски - мне бы
понять что делаю неверно
13 сен 17, 17:01    [20793386]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
SangYong,

если не ошибаюсь, на младшую версию не присоеденить
13 сен 17, 17:03    [20793390]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 653
да мне бы прочесть - можно на англ. - гугл-то слишком много выкидывает - нужно подбирать текст вопроса
13 сен 17, 17:05    [20793399]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
o-o
Guest
SangYong
если честно я в затыке - как mdf создать на 2016-ом и кинуть на 2008-ом по простому, ведь вроде
по всем мануалам должно...

какие-то неправильные мануалы.
никогда и ни за что старшую базу на младший сервер ни присоединить, ни отресторить нельзя.
а Compatibility Level вообще не имеет отношения к файлу данных.
т.е. совсем.
меняя CL, ничего с данными не делается, лишь какие-то архаические элементы языка вдруг становятся доступными,
типа звездные соединения в CL = 80
ну или старый оптимизатор можно на новой базе юзать, в таком духе
13 сен 17, 17:10    [20793408]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
o-o
Guest
автор
как-будто версия и COMPATIBILITY_LEVEL не связаны что-ли

вот именно.
не как будто и не что ли.
не связаны никак и все тут.
версия базы это определенный формат хранения данных и лога.
и формат этот можно только апгрэйдить, безвозвратно
13 сен 17, 17:13    [20793416]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 653
нда ?

а вот это можно в топку:
ALTER DATABASE AdventureWorks2012
SET COMPATIBILITY_LEVEL = 110;

вроде как речь идет о базе...

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

не ну нет так нет...сделаем костыли
13 сен 17, 17:16    [20793431]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
o-o
Guest
SangYong
да мне бы прочесть - можно на англ. - гугл-то слишком много выкидывает - нужно подбирать текст вопроса

вот так подойдет?
автор
SQL Server does not allow you to restore or attach a database from a higher version of SQL Server to a lower version of SQL Server.

How to migrate a SQL Server database to a lower version

официальное не могу найти.
угробили msdn тоже безвозвратно.
"апгрэйдили", Козловы хреновы
13 сен 17, 17:21    [20793455]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
SangYong
нда ?

а вот это можно в топку:
ALTER DATABASE AdventureWorks2012
SET COMPATIBILITY_LEVEL = 110;

вроде как речь идет о базе...

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

не ну нет так нет...сделаем костыли

В смысле в топку? Там четко написано, что делает эта команда:

автор
Sets certain database behaviors to be compatible with the specified version of SQL Server.

Не меняет базу, а меняет поведение базы, так чтобы поведение было совместимо с определенной версией.
13 сен 17, 17:23    [20793462]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
o-o
Guest
SangYong
нда ?

а вот это можно в топку:
ALTER DATABASE AdventureWorks2012
SET COMPATIBILITY_LEVEL = 110;

вроде как речь идет о базе...

во же блин.
вы читаете, чего вам отвечают?
база апгрэйдится -- байты в mdf, ldf реально меняются.
в одностороннем порядке, обратно не сменишь.

а CL меняй хоть сутки напролет туда-обратно.
и это никак не затрагивает сами файлы базы.

версия базы это то, что в
dbcc dbinfo with tableresults

первая строка, dbi_version
вот меняйте CL до и наблюдайте за dbi_version, меняется или нет
13 сен 17, 17:28    [20793484]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 653
ну как чел, которому пришлось в нулевых с MSA97 переходить MSA2000 и обратно
это как-то всё не понять...раз переформатировал значит и обратно можно с некотрыми
потерями функциональности...

ну спсб - ушел...
13 сен 17, 17:43    [20793543]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
SangYong
ну как чел, которому пришлось в нулевых с MSA97 переходить MSA2000 и обратно
это как-то всё не понять...раз переформатировал значит и обратно можно с некотрыми
потерями функциональности...

ну спсб - ушел...
Можно развернуть старый сервер, подцепить в качестве линка, и на него перегнать все данные.
13 сен 17, 17:52    [20793578]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
o-o
Guest
SangYong
ну как чел, которому пришлось в нулевых с MSA97 переходить MSA2000 и обратно
это как-то всё не понять...раз переформатировал значит и обратно можно с некотрыми
потерями функциональности...

ну спсб - ушел...

Вы путаете "теоретически можно" с "практически можно".
Теоретически уйма всего возможна, а практически только то, что MS реализовало
13 сен 17, 17:55    [20793590]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
lkhibg
Guest
в CREATE DATABASE (Transact-SQL) указано

https://technet.microsoft.com/en-us/library/ms176061(v=sql.110).aspx

A database created by a more recent version of SQL Server cannot be attached in earlier versions.
13 сен 17, 18:11    [20793626]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
SangYong
да мне бы прочесть - можно на англ. - гугл-то слишком много выкидывает - нужно подбирать текст вопроса

короче, вот ссылка, там в первом абзаце всё написано
SangYong
http://sqlserverbuilds.blogspot.ru/2014/01/sql-server-internal-database-versions.html

а вообще, если объёмы данных совсем небольшие, то можно заскриптовать базу целиком вместе с данными и выполнить на другом сервере
13 сен 17, 21:04    [20793973]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
iii2
Member

Откуда:
Сообщений: 202
Shakill
SangYong
да мне бы прочесть - можно на англ. - гугл-то слишком много выкидывает - нужно подбирать текст вопроса

короче, вот ссылка, там в первом абзаце всё написано
SangYong
http://sqlserverbuilds.blogspot.ru/2014/01/sql-server-internal-database-versions.html

а вообще, если объёмы данных совсем небольшие, то можно заскриптовать базу целиком вместе с данными и выполнить на другом сервере

Дык, а если большие - то опять же заскиптовать базу целиком и перегнать данные через bcp.
14 сен 17, 09:43    [20794595]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3671
Shakill
SangYong
да мне бы прочесть - можно на англ. - гугл-то слишком много выкидывает - нужно подбирать текст вопроса

короче, вот ссылка, там в первом абзаце всё написано
SangYong
http://sqlserverbuilds.blogspot.ru/2014/01/sql-server-internal-database-versions.html

а вообще, если объёмы данных совсем небольшие, то можно заскриптовать базу целиком вместе с данными и выполнить на другом сервере


можно, а можно и с сервера на сервер, если речь о данных.
Но ТС не задумывается, видимо, или уверен в совместимости всяких триггеров, процедур, функций, синтаксических конструкций и т.д.
14 сен 17, 10:40    [20794807]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 653
да не - хорош вам уже...просто в txt неск. млн. записей кидаю, зипую
и восстанавливаю на удаленной машине. Просто хотел упростить
процесс...а так пришлось перекладываться

спасибо за обсуждение
(кстати попробовал создать базу на 2008
потом заполнить ее на 2016 и снова приэтачить
на 2008 - не прокатило - та же ошибка - ну не знаю
- лично мне не понятно - если есть CL то почему
я не могу на деле воспользоваться совместимостью)
14 сен 17, 14:34    [20795971]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36903
SangYong
ну не знаю
- лично мне не понятно - если есть CL то почему
я не могу на деле воспользоваться совместимостью
Вам действительно надо объяснить, почму вы не можете воспользоваться воображаемым вами функционалом? Написано же, что CL влияет на поведение кода и оптимизатора, но нигде не написано, что влияет на формат базы.
14 сен 17, 14:50    [20796054]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
Eleanor
Member

Откуда:
Сообщений: 2806
SangYong
лично мне не понятно - если есть CL то почему
я не могу на деле воспользоваться совместимостью

Представьте себе CL как частичную обратную совместимость.
Полной обратной совместимости нет.
14 сен 17, 14:57    [20796081]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
lkhibg
Guest
https://blogs.msdn.microsoft.com/sqlserverstorageengine/2007/04/26/whats-the-difference-between-database-version-and-database-compatibility-level/

What’s the difference between database version and database compatibility level?
April 26, 2007 by Paul Randal

http://sqlrus.com/2014/10/compatibility-level-vs-database-version/

Compatibility Level vs Database Version
October 23, 2014 by John Morehouse
14 сен 17, 15:08    [20796114]     Ответить | Цитировать Сообщить модератору
 Re: COMPATIBILITY_LEVEL - 2016 ->2008 не получается  [new]
lkhibg
Guest
можно поэкспериментировать

создаём базу на SQL 2005 и отцепляем
USE [master]
GO

CREATE DATABASE [test]
 ON PRIMARY 
( NAME = N'test_dat', FILENAME = N'C:\temp\2005\test_dat.mdf' , SIZE = 3MB , MAXSIZE = UNLIMITED, FILEGROWTH = 3MB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'C:\temp\2005\test_log.ldf' , SIZE = 3MB , MAXSIZE = UNLIMITED, FILEGROWTH = 3MB )
GO

ALTER DATABASE [test] SET RECOVERY SIMPLE 
GO

exec sp_detach_db @dbname=N'test'

копируем, подключаем на SQL 2016 и отцепляем
exec sp_attach_db
	@dbname = N'test',
    @filename1 = N'C:\temp\2005\test_dat.mdf',
    @filename2 = N'C:\temp\2005\test_log.ldf';

/*
Преобразование базы данных "test" с версии 611 до текущей версии 852.
База данных "test" выполняет шаг обновления с версии 611 до версии 621.
База данных "test" выполняет шаг обновления с версии 621 до версии 622.
База данных "test" выполняет шаг обновления с версии 622 до версии 625.
...
База данных "test" выполняет шаг обновления с версии 849 до версии 850.
База данных "test" выполняет шаг обновления с версии 850 до версии 851.
База данных "test" выполняет шаг обновления с версии 851 до версии 852.
*/

exec sp_detach_db @dbname=N'test'

сравниваем
C:\fc.exe /B C:\TEMP\2005\test_dat.mdf C:\TEMP\2016\test_dat.mdf

Не удивляемся.
То, что и следовало ожидать
14 сен 17, 15:39    [20796231]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить