2016-12-12 5 views
1

У меня есть две таблицы с почти такой же структурой, один в SQL Server 2005, а другой в SQL Server 2016. Единственным отличием является то, что столбец ModifiedDate имеет тип datetime в SQL 2005 и datetimeoffset в SQL 2016.Использование BCP SQL Server для переноса данных из DateTime в DateTimeOffset

Я использовал bcp для экспорта данных из SQL 2005 в собственном формате в файл. Затем я попытался использовать bcp для импорта файла данных в SQL 2016. Я получил сообщение об ошибке:

[ODBC Driver 11 for SQL Server] Invalid field size for datatype

Если я удалил ModifiedDate колонку, экспорт/импорт будет работать без каких-либо ошибок.

Кто-нибудь знает, как решить проблему?

ответ

0

При экспорте с ППГ, вместо того, чтобы делать в OUT экспорт непосредственно для таблицы, сделать QUERYOUT экспорт с запросом, который преобразует DATETIME поля в поле с форматом, который конвертируется в DATETIMEOFFSET.

+0

Это не вариант. Две базы данных - это разные домены, и я должен использовать файлы. – user3616544

+0

@ user3616544 Вы все еще используете «файлы» в том, что я описал. Экспорт 'QUERYOUT' по-прежнему является экспортом в файл. Я не совсем понимаю, о чем вы говорите. –