Импорт данных в собственном и символьном формате из предыдущих версий 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...) не приведут к ошибке, но усекут значение секунд.
Связанные задачи
Использование форматов данных для массового импорта или экспорта
Использование символьного формата для импорта или экспорта данных (SQL Server)
Использование собственного формата для импорта или экспорта данных (SQL Server)
Использование символьного формата Юникода для импорта и экспорта данных (SQL Server)
Использование собственного формата Юникода для импорта или экспорта данных (SQL Server)
См. также:
Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Типы данных (Transact-SQL)
Обратная совместимость компонента ядра СУБД SQL Server
Функции CAST и CONVERT (Transact-SQL)