Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Из MS SQL 2014 в MS SQL 2005 / 22 сообщений из 22, страница 1 из 1
27.03.2018, 07:44
    #39620874
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Добрый день! Пытаюсь создать схему БД с данными на MS SQL 2014 и восстановить ее на MS SQL 2005.

Делаю всё по инструкции, правой кнопкой по своей базе - Tasks - Generate Scripts - (по умолч) Next - (по умолч) Next - Advanced - для версии SQL Server 2005, индекс, триггеры, первичные ключи, Schema and data, остальное по умолчанию - дальше Next.

Создается файл script.sql больше, чем 3 Гб. Конечно при открытии жалуется на нехватку памяти, а как я путь тогда поправлю?? Здесь у меня диск D, на другом сервере диск G. Поэтому предварительно базу специально перенесла на диск С, ибо только этот диск по имени совпадает с другим сервером (принтскрин №1 без выгрузки данных, только схема для демонстрации).

Окей, ладно, теперь иду на другой сервер с версией 2005. Использую команду sqlcmd -S TRM-LIB\SQLEXPRESS -i G:\script.sql
Идет процесс, но! таблицы создаются в БД master. Попробовала просто схему создать и подгрузить, без данных, все равно в БД master таблицы появляются. Что делать? Как быть? Что я упустила?
...
Рейтинг: 0 / 0
27.03.2018, 07:48
    #39620875
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Забыла упомянуть, что MS SQL 2014 и 2005 версии Express.
...
Рейтинг: 0 / 0
27.03.2018, 08:40
    #39620889
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993,
Команду USE <база данных>
Обычно перед созданием базы должно быть USE master
а затем после
GO
USE база -- для переключение пользовательской базы
...
Рейтинг: 0 / 0
27.03.2018, 08:47
    #39620890
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
GO
USE [master];

GO

... -- команды связанные с созданием базы

GO
USE [TIF_DATA];


GO

  
...-- создание таблиц, ...
...
Рейтинг: 0 / 0
27.03.2018, 15:45
    #39621286
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993Идет процесс, но! таблицы создаются в БД master.Либо вы в Advanced случайно отключили опцию USE DATABASE, либо команда CREATE DATABASE выполняется с ошибкой.
Проверьте наличие USE [TFI_DATA] в файле (сразу после блока ALTER DATABASE), и проверяйте результат выполнения скрипта командой sqlcmd
...
Рейтинг: 0 / 0
28.03.2018, 00:07
    #39621623
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
alexeyvg, хм, действительно, оказался USE DATABASE по умолчанию false.
Спасибо)
...
Рейтинг: 0 / 0
28.03.2018, 05:33
    #39621658
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
А теперь новая проблема((( пишет Cannot insert value when Identity_insert is set to off
Я конечно понимаю, что вставлять данные в Identity поле нельзя, но как тогда быть? Как мне сменить всем таблицам разом Identity_Insert на ON? Может при выгрузке схемы есть поле в Advanced?
...
Рейтинг: 0 / 0
28.03.2018, 05:42
    #39621662
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Еще оказывается только одна из таблиц может быть On, пока её не Of-неш, другую не включишь в ON((( Что же делать(
...
Рейтинг: 0 / 0
28.03.2018, 07:45
    #39621680
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Итак, очень странная ерунда. Часть таблиц спокойно заполняются данными, но у некоторых начинается IDENTITY_INSERT OFF и они не хотят получать данные.
Поэтому я выгрузила данные потаблично в sql файлики, и смогла открыть некоторые (которые не такие тяжелые) и там есть Set IDENTITY_INSERT ON, а в конце Set IDENTITY_INSERT OFF. И это есть в файле для таблицы, которая жалуется что IDENTITY_INSERT OFF! Ну как так? Получается что где-то в предыдущем файле не сработало закрытие и поэтому он открыть заново не может?
...
Рейтинг: 0 / 0
28.03.2018, 08:15
    #39621686
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Загрузила отдельно тяжелую ругающуюся табличку, используя команду sqlcmd. Отдельно она начала загружаться! Не понимаю, что там в общем файле может портить мне загрузку. Отдельно загружать около 100 очень очень очень не хочется(
...
Рейтинг: 0 / 0
28.03.2018, 10:30
    #39621777
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993Итак, очень странная ерунда. Часть таблиц спокойно заполняются данными, но у некоторых начинается IDENTITY_INSERT OFF и они не хотят получать данные.
Поэтому я выгрузила данные потаблично в sql файлики, и смогла открыть некоторые (которые не такие тяжелые) и там есть Set IDENTITY_INSERT ON, а в конце Set IDENTITY_INSERT OFF. И это есть в файле для таблицы, которая жалуется что IDENTITY_INSERT OFF! Ну как так? Получается что где-то в предыдущем файле не сработало закрытие и поэтому он открыть заново не может?Думаю, где то перед загрузкой этих данных произошла ошибка, и не выполнился IDENTITY_INSERT OFF, тем более что он почему то вставляется в текущий батч, а не в отдельный.
И соответственно не выполнился IDENTITY_INSERT ON уже для новой таблицы.
Нужно анализировать результат выполнения, например, искать по слову ERROR
Что бы результат был поменьше, для удобства поиска, нужно в начало файла скрипта добавить SET NOCOUNT ON (или в SQLCMD можно добавить файл скрипта, и он вроде выполняется в одном коннекте?)

Taya_1993и смогла открыть некоторые (которые не такие тяжелые)Вообще маст хэв ИТ-специалиста - нормальные средства работы с файлами, например, FAR. Что бы не было проблем посмотреть 10 Гб файл, поковыряться в нём, поискать что нибудь.
...
Рейтинг: 0 / 0
28.03.2018, 10:31
    #39621781
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993Загрузила отдельно тяжелую ругающуюся табличку, используя команду sqlcmd. Отдельно она начала загружаться! Не понимаю, что там в общем файле может портить мне загрузку. Отдельно загружать около 100 очень очень очень не хочется(Ошибка в том батче, который последний перед этой табличкой, и в котором есть IDENTITY_INSERT OFF
...
Рейтинг: 0 / 0
30.03.2018, 01:30
    #39622966
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Ошибка возникает перед RO_org по логу.
https://yadi.sk/i/SmEs5Y6D3Ttu76

Через FAR я открыла свой полный sql с данными, нашла таблицу, которая идет перед RO_org. Она называется LM_uslov.
https://yadi.sk/i/a5tWREAq3Ttu9f

Открыла эту таблицу в восстановленной базе и увидела, что записей всего 1199 и последняя из них № 491.
https://yadi.sk/i/PyaD5AP93TtuBD

Открыла исходную базу, а там всего объектов 1270 и под 1199 по счету как раз запись № 491. Получается, что ошибка в следующей записи 2000 по счету - это номер 492.
https://yadi.sk/i/KwFapflc3TtuBu

Ищу ее в своем sql с данными, нахожу и не вижу никаких кавычек лишних, вообще маленькая строка.
https://yadi.sk/i/VJHm4FI43TtuHs

Что я опять упустила?
...
Рейтинг: 0 / 0
30.03.2018, 03:01
    #39622977
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993,
Обычно, в таком случае, вырезают проблемную таблицу и гонят процесс дальше.
Не известно, будут ли дальше сюрпризы?
Если все дальше пройдет без проблем - заняться вплотную этой таблицей.
На крайняк - руками перебить злостчастную запись.
...
Рейтинг: 0 / 0
30.03.2018, 13:09
    #39623243
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Massa52,

почему не хотите использовать мастер экспорта для перемещения данных?
...
Рейтинг: 0 / 0
30.03.2018, 16:51
    #39623463
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993Открыла исходную базу, а там всего объектов 1270 и под 1199 по счету как раз запись № 491. Получается, что ошибка в следующей записи 2000 по счету - это номер 492.Не в 492, а в батче, который начинается на записи номер 492. Может, в какой то другой записи в этом батче ошибка.

Если можете, попробуйте вырезать этот батч, и его выполнить после выполнения скрипта загрузки. Это, конечно, если у вас есть такой редактор, который может работать с таким большим файлом.
Если нет, можно ещё сгенерить скрипт для одной этой таблички, и выполнить его в SSMS

Да, и ещё, вы всё таки посмотрите результат выполнения SQLCMD (-o output_file), если записи не вставились, то там обязательно должна быть ошибка.
...
Рейтинг: 0 / 0
30.03.2018, 16:57
    #39623467
AlanDenton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
А почему бы не сделать проще. Взяли поставили любой дата схема компаратор. Сравнили с пустой базой. Накатили вначале схему. Потом данные. И даже если будут ошибки можно сделать итерационно.
...
Рейтинг: 0 / 0
01.04.2018, 12:35
    #39623858
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Massa52Taya_1993,
Обычно, в таком случае, вырезают проблемную таблицу и гонят процесс дальше.
Не известно, будут ли дальше сюрпризы?
Если все дальше пройдет без проблем - заняться вплотную этой таблицей.
На крайняк - руками перебить злостчастную запись.

гонят дальше - это, например, в ранних версиях какого-нибудь 1с, где нет связей и т.д.
...
Рейтинг: 0 / 0
03.04.2018, 00:31
    #39624388
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
В общем, если накатить схему отдельно, потом данные БЕЗ таблицы LM_uslov, теперь точно такая же ошибка на другой таблице причем тоже которая до RO_org идет. Так что вы были правы, дело не в данных таблицы, а будто выполнение доходит до определенной строчки (а там уж неважно какая таблица оказалась на этой строчке) и жалуется на символ ' '. Только вот я не очень понимаю выражение "ошибка в батче" - это означает что SQL сам свою конструкцию запорол и мне теперь не найти решение?

alexeyvg, результат выполнения жалуется на символ ' ' https://yadi.sk/i/SmEs5Y6D3Ttu76
Насколько я поняла, батч это от GO до следующего GO. Но если я не переносила таблицу LM_uslov, значит этот батч отсутствует и я думала что все будет хорошо, но нет.

Видимо придется по одной табличке переносить, эх. Если конечно мне не подскажут бесплатное стороннее приложение, которое может из 2014 в 2005 перенести базы.
...
Рейтинг: 0 / 0
03.04.2018, 01:36
    #39624393
Taya_1993
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Итак, посмотрела я этот батч между GO и GO и оказалось что RO_org тоже попадает в этот проблемный батч и задумалась я, наверно там что-то не так, слава богу он не тяжелый, в MS SQL открылся, запустила его, он пожаловался на символ '', попался! И двойным щелчком по ошибке меня перенесло к строке с ошибкой, оказалось там в начале текста какие-то чуть ли не японские кракозябры и следом продолжается нормальный русский текст, удалила эти таинственные кракозябры, вроде запустился, не ругался больше на '''. Посмотрю что дальше, вдруг у меня много где такое и вдруг они тяжелее и не откроются, тогда плохо(
...
Рейтинг: 0 / 0
03.04.2018, 05:51
    #39624410
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993,
Я для накатывания данных всегда использую bcp.
...
Рейтинг: 0 / 0
03.04.2018, 06:48
    #39624418
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из MS SQL 2014 в MS SQL 2005
Taya_1993Только вот я не очень понимаю выражение "ошибка в батче" - это означает что SQL сам свою конструкцию запорол и мне теперь не найти решение?По разным причинам может быть ошибка в батче...

Но вот в данном случае это очевидный баг SSMS, конечно, она должна правильно формировать строковые константы, независимо от того, какие там в строке встречаются символы.

К сожалению, простого решения нет.

Какие варианты можно придумать?
1. нужно проверить версию SSMS, может, поправили? :-)
2. можно попытаться найти какой нибудь конвертер файлов, для замены неправильных символов.
3. установить редактор для больших файлов, и поправить эти строки (если их немного)
4. проапдейтить неправильные строки в исходной базе

Ну и вариант - пойти каким то другим путём для переноса, например, тут говорили о мастере экспорта - но это если у вас есть коннект между этими серверами.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Из MS SQL 2014 в MS SQL 2005 / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]