导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

在 SQL Server 2014 中,您可以通过将 bcp 与 -V 开关一起使用,从 SQL Server 2000、SQL Server 2005、SQL Server 2008、SQL Server 2008 R2 或 SQL Server 2012 中导入本机和字符格式数据。 -V 开关将使 SQL Server 2014 使用指定的 SQL Server 早期版本中的数据类型,并且数据文件格式与早期版本中的格式相同。

 

若要为数据文件指定 SQL Server 早期版本,可将 -V 开关与以下的任一限定符一起使用:

SQL Server 版本

限定符

SQL Server 2000

-V 80

SQL Server 2005

-V 90

SQL Server 2008

-V 100

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

UDT

image

image

image

* 此类型受本机支持。

UDT 表示用户定义的类型。

 

使用 –V 80 进行导出


当使用 –V80 开关批量导出数据时,本机模式下的 nvarchar(max)、varchar(max)、varbinary(max)、XML 和 UDT 数据将像 text、image 和 ntext 数据一样以带有 4 个字节的前缀形式存储,而不是像 SQL Server 2005 及更高版本默认的那样以带有 8 个字节的前缀形式存储。

 

复制日期值


bcp 将使用 ODBC 大容量复制 API。 因此,为了将日期值导入到 SQL Server 中,bcp 使用了 ODBC 日期格式 (yyyy-mm-dd hh:mm:ss[.f...])。

 

对于字符格式的数据文件,bcp 命令会为 datetime 和 smalldatetime 类型的值使用 ODBC 默认格式将文件导出。 例如,包含日期 12 Aug 1998 的 datetime 列将以字符串 1998-08-12 00:00:00.000 的形式大容量复制到数据文件中。

 

重要提示

在使用 bcp 将数据导入到 smalldatetime 字段中时,请确保秒数值为 00.000,否则操作将失败。 smalldatetime 数据类型仅支持最接近的分钟值。 BULK INSERT 和 INSERT ... SELECT * FROM OPENROWSET(BULK...) 在这种情况下不会失败,但会截断秒值。


参考:

https://msdn.microsoft.com/zh-cn/library/ms191212.aspx
















本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1628106,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
SQL 存储 PHP
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第15天】在高版本的Laravel框架中,使用SQLServer 2008数据库进行分页操作时可能会遇到兼容性问题,导致报错。本文提供了两种解决方案:一是升级数据库版本至2012或更高,以提高对复杂查询的支持;二是通过自定义分页查询构建器,手动调整分页逻辑,使其适应SQLServer 2008的特性。具体实施步骤包括备份数据、安装新数据库版本、恢复数据,或创建自定义分页查询类并在模型中使用。这些方法能有效解决分页报错问题。
|
2月前
|
SQL PHP 数据库
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第6天】在高版本的 `laravel/framework` 中使用 SQL Server 2008 进行数据库操作时,可能会出现分页报错。这是由于 `laravel` 的分页机制与 SQL Server 2008 的某些特性不兼容所致。解决方法包括:1. 升级数据库版本;2. 自定义分页查询语句;3. 使用兼容包或插件;4. 修改 `laravel` 的分页逻辑。
|
2月前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
3月前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
3月前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
3月前
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
|
3月前
|
SQL 监控 测试技术
SQL现在到哪个版本及版本更新技巧与方法
SQL(Structured Query Language)作为数据库管理和操作的标准语言,随着技术的不断进步和数据库管理系统(DBMS)的持续发展,其版本也在不断更新和完善
|
2月前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
46 0
|
SQL 数据库 关系型数据库
|
4月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")