Импорт данных в собственном и символьном формате из предыдущих версий SQL Server
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
В SQL Server 2014 (12.x) и более поздних версиях Bcp можно использовать для импорта данных собственного и символьного формата из SQL Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x) или SQL Server 2012 (11.x) с помощью коммутатора -V. Параметр -V приводит к тому, что SQL Server использует типы данных из указанной более ранней версии SQL Server, а формат файла данных совпадает с форматом в этой более ранней версии.
Чтобы указать более раннюю версию SQL Server для файла данных, используйте параметр -V с одним из следующих квалификаторов:
Версия SQL Server | Квалификатор |
---|---|
SQL Server 2000 (8.x) | -V80 |
SQL Server 2005 (9.x) | -V90 |
SQL Server 2008 (10.0.x) | -V100 |
SQL Server 2012 (11.x) | -V 110 |
Интерпретация типов данных
SQL Server 2005 (9.x) и более поздних версий поддерживают некоторые новые типы. При импорте нового типа данных в более раннюю версию SQL Server тип данных должен храниться в формате, доступном для чтения старыми клиентами bcp . В следующей таблице показано, как новые типы данных преобразуются для совместимости с более ранними версиями SQL Server.
Новые типы данных в SQL Server 2005 | Совместимые типы данных в версии 6x | Совместимые типы данных в версии 70 | Совместимые типы данных в версии 80 |
---|---|---|---|
bigint | десятичное | десятичное | * |
sql_variant | text | nvarchar(4000) | * |
varchar(max) | text | text | text |
nvarchar(max) | ntext | ntext | ntext |
varbinary(max) | Изображение | Изображение | Изображение |
XML | ntext | ntext | ntext |
UDT** | Изображение | Изображение | Изображение |
*Этот тип поддерживается изначально.
**UDT обозначает определяемый пользователем тип.
Экспорт с ключом -V 80
При массовом экспорте данных с помощью переключателя -V80 nvarchar(max), varchar(max), varbinary(max), XML и UDT в собственном режиме хранятся с префиксом 4-байтов, например текстовыми, изображениями и ntext-данными, а не с префиксом 8-байтов, который по умолчанию используется для SQL Server 2005 (9.x) и более поздних версий.
Копирование значений данных
Программа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...) не приведут к ошибке, но усекут значение секунд.
Связанные задачи
Использование форматов данных для массового импорта или экспорта
Использование символьного формата для импорта или экспорта данных (SQL Server)
Использование собственного формата для импорта или экспорта данных (SQL Server)
Использование символьного формата Юникода для импорта и экспорта данных (SQL Server)
Использование собственного формата Юникода для импорта или экспорта данных (SQL Server)
См. также
bcp Utility
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)
Обратная совместимость компонента ядра СУБД SQL Server
CAST и CONVERT (Transact-SQL)