Импорт данных в собственном и символьном формате из предыдущих версий SQL Server
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр 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 | 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 |
UDT** | image | image | image |
*Этот тип поддерживается изначально.
**UDT обозначает определяемый пользователем тип.
Экспорт с ключом -V 80
При массовом экспорте данных ключом -V80 данные типов nvarchar(max) , varchar(max) , varbinary(max) , XML и определяемый пользователем тип в собственном режиме хранятся с 4-байтовым префиксом, как данные text, image и 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
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)
Обратная совместимость компонента ядра СУБД SQL Server
Функции CAST и CONVERT (Transact-SQL)