Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决

有人说应该先转成Access, 再转到Sql Server。 其实用处并不大, 要截断的还是被截断了。

原因是,SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别。如果前8条是少于255的字符串,则设成nvarchar(255)类型,但如果Excel后面的记录中有长度超过255的,导入时就会出错。即使在导入设置映射时调整了该字段的长度也不行。

解决的办法是改注册表

如果是:Jet引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

如果是:ACE引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
然后找到 TypeGuessRows这个项.默认为8的.修改为0.

时间: 2024-07-30 11:21:25

Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决的相关文章

Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”

从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表的每个字段类型,取excel表的每个字段的前几行(3行即可)来判别.如果前3条是少于255的字符串,则设成nvarchar(255)类型,所以,当如果第四条或更后的数据的字符数大于255,则会报错. 解决方法: 在导入数据前,可以手动加几条无关的数据,让字段的字符数大于255,则导入时SQL Ser

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...

使用sql server 导入平面文件源数据时,报错:错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5:错误 0xc0047022: 返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项. 错误 0xc02020a1: 数据流任务 1: 数据转换失败.列"列 6"的数据转换返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项.". (SQL Server 导入

将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?

先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库中导入 打开SQL Server Management Studio 在需要导入数据的数据库名上点击鼠标右键选Task,选Import Date 点Next Data Soure选Microsoft Excel file path选你的Excel文件 点Next Authentication中选Us

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

BULK INSERT如何将大量数据高效地导入SQL Server

转载自:http://database.51cto.com/art/201108/282631.htm BULK INSERT如何将大量数据高效地导入SQL Server 本文我们详细介绍了BULK INSERT将大量数据高效地导入SQL Server数据库的方法,希望本次的介绍能够对您有所帮助. AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统 在实际的工作需要中,我们有时候需将大量的数据导入到数据库中.这时候我们不得不考虑的就是效率问题.本文我们就介绍了一种将大量数据高效地

将ACCESS数据批量导入SQL SERVER

代码: IF OBJECT_ID('Sp_InputAccesstoSQL') IS NOT NULL     DROP PROC Sp_InputAccesstoSQL GO CREATE PROC Sp_InputAccesstoSQL @dir NVARCHAR(100),--ACCESS文件存放路径:如D:\Files @tabname NVARCHAR(50) --定义导入到数据库中的表名,如果存在就不需要创建 AS SET NOCOUNT ON DECLARE @cmd NVARCH

从SSMS中复制代码到Word中数字消失--没解决&&Excel连接SQL Server数据库

1.因工作需要需把SSMS中的代码复制到word中,可发现一个问题: 从SQL Server2008的SSMS中复制代码到Word 2013中,如果是中文汉字+阿拉伯数字,阿拉伯数字会消失.如果是英文+阿拉伯数字就没有问题.在网上也没找到方法,问一哥们,他说我们都是英文,没遇到过.记录下来吧 2.每次发的数据都在数据库中,之前都是select * from TableName,然后"连同标题一起复制",然后再粘贴到Excel中.但其实excel可以连接SQL Server的,其实操作很

PowerShell 导入 SQL Server 的 PS 模块

接触过UNIX或者Linux 的朋友都知道此类系统有着功能强大.无所不能的壳程序,称之为Shell.微软公司于2006年第四季度正式发布PowerShell,它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 不仅提供简便的图形化操作界面,同时提供类似于Unix, Linux等操作系统中强大的Shell管理模式. 经过几年的努力,微软已逐步开发各服务器端产品对PowerShell 的支持.不懂PowerShell必将会被淘汰,今天我们就来看看SQL Server对PowerShell的支持

DataTable 导入 SQL SERVER 数据库

public void InsertTable(DataTable dt, string TabelName, DataColumnCollection dtColum) { //string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString(); //声明数据库连接 SqlConnection conn = new SqlConnection(strco