У меня есть вопрос о программе пакетного копирования Microsoft SQL (BCP.exe). Я относительно новичок в использовании программы, поэтому надеюсь, что это простой вопрос для некоторых, однако я застрял!
На сервере # 1 мы запускаем Microsoft SQL 2014, он запускает BCP для экспорта нескольких таблиц. Он предоставляет мне файл * .DAT и * .FMT для каждой таблицы.
Когда я иду импортировать эти данные на сервер # 2, работающий под управлением Microsoft SQL 2012, я получаю сообщение об ошибке:
SQLState = HY000, NativeError = 0Error = [Microsoft][SQL Server Native Client 11.0][SQL Server]Syntax error at line 2 column 0 in xml format file. | Exit Code: 1
Я читал, что были проблемы с версиями, используя BCP, идущий от более новой версии к старой версии SQL, и быстро нашел способ вручную исправить это.
В FMT-файле, как вы знаете, самая первая строка содержит номер версии SQL, который экспортировал данные, что в данном случае составляет 12,0 . Если я изменю это на 11.0 (или 10.0 ), то повторный запуск импорта все отлично работает и dandy!
Вот пример файла FMT, прежде чем я отредактирую первую строку:
12.0
6
1 SQLNCHAR 2 72 "" 1 ListID SQL_Latin1_General_CP1_CI_AS
2 SQLNCHAR 2 32 "" 2 EditSequence SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 62 "" 3 Name SQL_Latin1_General_CP1_CI_AS
4 SQLBIT 1 1 "" 4 IsActive ""
5 SQLNCHAR 2 30 "" 5 PriceLevelType SQL_Latin1_General_CP1_CI_AS
6 SQLDECIMAL 1 19 "" 6 PriceLevelFixedPercentage
Хотя я могу исправить это вручную, мне нужно автоматизировать эту систему, чтобы работать очень регулярно, поэтому это не долгосрочное решение. Пожалуйста, помогите! Я могу что-нибудь сделать?
Мне нужно либо исправить экспорт, чтобы он использовал v11.0 или старше, либо исправить импорт, чтобы он распознал v12.0. Я попытался использовать флаг -V как для импорта, так и для экспорта, но это не влияет на обоих концах.
Заранее благодарим за советы экспертов.
Мне удалось решить эту проблему, установив Microsoft® Command Line Utilities 11 для SQL Server® и добавив местоположение bcp.exe в переменные пути. Теперь я могу экспортировать версию 11 с помощью bcp 11, тем самым делая файлы с экспортированным форматом совместимыми с SQL 2012. Вы можете скачать его здесь https://www.microsoft.com/en-us/download/details.aspx?id=36433