SQL Server массовая вставка int в bigint

Я пытаюсь использовать утилиту bcp для экспорта таблицы на диск, удаления данных, изменения столбца идентификаторов в этой таблице с int на bigint, а затем повторно импортировать эти данные.

Когда я "bcp in" данные, я получаю огромные числа в столбце bigint, а не исходную идентификацию. Я использую переключатель -E для сохранения идентификаторов, и я изменил файл формата bcp, чтобы он был столбцом fixedlength = 4.

Можно ли это сделать?

ОБНОВЛЕНИЕ: я использую переключатель -N, чтобы использовать собственные типы баз данных. Я пробовал использовать переключатель -w и теперь получаю разные ошибки, касающиеся приведений типов и типов данных текстовых столбцов.


person sqlconsumer.net    schedule 26.06.2014    source источник
comment
Можете ли вы просто скопировать данные во временную таблицу вместо того, чтобы экспортировать их? Или прямо колонку переделать?   -  person usr    schedule 26.06.2014
comment
Нет, в этой таблице миллиард строк   -  person sqlconsumer.net    schedule 26.06.2014
comment
Оставить данные внутри SQL Server, вероятно, быстрее, чем их экспортировать и импортировать.   -  person usr    schedule 26.06.2014
comment
Извините, я должен был добавить. Исходный сервер и целевой сервер - это разные серверы.   -  person sqlconsumer.net    schedule 26.06.2014
comment
А как насчет написания простого пакета SSIS? Вы можете использовать массовую вставку, это позволит вам соответствующим образом преобразовать / преобразовать и поможет вам определить, почему вы ошибаетесь (лучше, чем обычная ошибка bcp)   -  person Nick H.    schedule 26.06.2014


Ответы (1)


Так что ответ - да, это можно сделать. Но не так, как могло бы показаться при использовании переключателя собственных типов данных -N.

Я использовал переключатель -w и -t с двойным разделителем «||». Мне был нужен этот разделитель, так как у некоторых текстовых значений были табуляции и / или каналы.

Я пробовал размер партии 1000, 2500, 25000, 100000. Лучшая производительность была от 25000.

person sqlconsumer.net    schedule 27.06.2014