环境:
win10,SQL Server 2008 R2
之前写过的放在这里:
SqlServer_陆沙的博客-CSDN博客
https://blog.csdn.net/pxy7896/category_12704205.html
最近重启ASP.NET项目,在使用sql server导出和导入数据时遇到一些问题,特此记录。
导出
这个主要是大容量的时候可能报错。原因看下面。不过我遇到的问题是某一列的内容可能非常长(大约1.5w字符),一直报错,不导出这一列就没问题了😓
sql server导出数据错误解决_sequator导出失败-CSDN博客
https://blog.csdn.net/weixin_44501858/article/details/110098739
另外就是导出时可以关闭目标excel文件和查询界面,也可能就不报错了。
导入
导入的时候我也是遇到好多种报错🙂
- 由于我的数据文件是csv格式(另一个程序生成的),sql server要求xlsx或者xls格式,所以要先转换(另存为)。
- 如果错误报告里提示不满足完整性要求,比如指明了某列缺失,那检查一下对应位置。我遇到了,是csv中某一列数据包含
\n
,导致csv产生换行,最后转换的xlsx也有换行,那么导入肯定会报错。 - 如果错误报告里提示“某列出错、被截断,或者一个或多个字符在目标代码页中没有匹配项”,可能的原因有:
a. 字段长度不够:考虑修改列的长度限制(varchar(20)→varchar(100))或者更改类型(varchar→nvarchar)
b. 字符集问题。就是插入数据中包含奇怪的字符。一般数据源是UTF-8,sql server是Unicode就没啥问题,不过还是建议导入之前做好数据清洗 - 如果错误报告里提示foreign key约束冲突,那是因为:如果表B的cid列依赖于表A的id列,就是外键,那么导入时要先导入A表的数据再导入B表的数据。外键的写法(T-SQL)
提示得很明确:create table dbo.A (id int primary key,... ); create table dbo.B (id int primary key,....cid int,foreign key (cid) references dbo.A(id), );