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

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

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

Версия SQL Server

Квалификатор

SQL Server 2000 

-V 80

SQL Server 2005

-V 90

SQL Server 2008

-V 100

Интерпретация типов данных, введенных в SQL Server 2005

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

UDT1

image

image

image

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

1 UDT обозначает определяемый пользователем тип.

Экспорт из SQL Server 2005 и более поздних версий

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

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

Программа bcp использует API-интерфейс массового копирования ODBC. Таким образом, для импорта значений дат в SQL Server программа bcp использует формат данных ODBC (yyyy-mm-dd hh:mm:ss[.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...) не приведут к ошибке, но усекут значение секунд.

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

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Справочник

Программа bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Типы данных (Transact-SQL)

Функции CAST и CONVERT (Transact-SQL)

Другие ресурсы

Обратная совместимость компонента SQL Server Database Engine