Импорт данных в собственном и символьном формате из предыдущих версий SQL Server

В SQL Server 2014 с помощью bcp можно импортировать собственные данные и данные символьного формата из SQL Server 2000, SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012 с помощью параметра -V. Параметр -V заставляет SQL Server 2014 использовать типы данных из указанной более ранней версии SQL Server, а формат файла данных совпадает с форматом в этой более ранней версии.

Чтобы задать более раннюю версию SQL Server для файла данных, используйте параметр -V с одним из следующих квалификаторов:

Версия SQL Server Квалификатор
SQL Server 2000 -V80
SQL Server 2005 -V90
SQL Server 2008 -V100
SQL Server 2012 -V 110

Интерпретация типов данных

SQL Server 2005 и более поздних версиях поддерживают некоторые новые типы. Если нужно импортировать новый тип данных в более раннюю версию SQL Server , эти данные необходимо сохранить в формате, который могут прочитать старые клиенты bcp . Следующая таблица содержит сведения о том, как новые типы данных преобразуются для совместимости с более ранними версиями SQL Server.

Новые типы данных в SQL Server 2005 Совместимые типы данных в версии 6x Совместимые типы данных в версии 70 Совместимые типы данных в версии 80
bigint decimal decimal *
sql_variant text nvarchar(4000) *
varchar(max) text text text
nvarchar(max) ntext ntext ntext
varbinary(max) image image image
XML ntext ntext ntext
Определяемый пользователемтип 1 image image image

* Этот тип поддерживается изначально.

1 определяемый пользователем тип указывает на определяемый пользователем тип.

Экспорт с ключом -V 80

При массовом экспорте данных с помощью параметра nvarchar(max)-V80 данные , varchar(max), varbinary(max), XML и определяемые пользователем данные в собственном режиме хранятся с 4-байтным префиксом, таким как text, imageи , а ntext не с 8-байтным префиксом, который используется по умолчанию для SQL Server 2005 и более поздних версий.

Копирование значений данных

Программаbcp использует API-интерфейс массового копирования ODBC. Таким образом, для импорта значений дат в SQL Serverпрограмма bcp использует формат данных ODBC (гггг-мм-дд чч:мм:сс[ .f... ]).

Команда bcp экспортирует файлы данных в символьных форматах, используя формат ODBC по умолчанию для datetime значений и smalldatetime . Например, столбец типа datetime, содержащий дату 12 Aug 1998, копируется с помощью массового копирования в файл данных в качестве строки символов 1998-08-12 00:00:00.000.

Важно!

При импорте данных в smalldatetime поле с помощью bcp убедитесь, что значение для секунд равно 00,000; в противном случае операция завершится ошибкой. Тип данных smalldatetime содержит значения только с точностью до минуты. В данном случае инструкции BULK INSERT и INSERT ... SELECT * FROM OPENROWSET(BULK...) не приведут к ошибке, но усекут значение секунд.

Связанные задачи

Использование форматов данных для массового импорта или экспорта

См. также:

Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)
Обратная совместимость компонента ядра СУБД SQL Server
Функции CAST и CONVERT (Transact-SQL)