使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列

来源:asp之家 时间:2012-07-11 15:34:35 

SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。



在网上找了下,大都说是因为数据库中的字段过小(

来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。
),造成截断的错误导致,仔细检查后发现我的表设计中没有字段过小的情况,也不是单引号的问题。

后经仔细调试发现,由于使用SqlBulkCopy导入时我的文本文件与库中的表列不对应造成的。我的文本文件中有字段18个,而我的表中只使用了9个字段,且有两个是文本文件中没有的(即表结构1中的[Level]与[Cagegory]字段),由数据库填入默认值。表结构如下:

代码如下:


表结构11
CREATE TABLE [dbo].[Ryxx](
[Name] [nvarchar](30) NOT NULL,
[IdCardNo] [nvarchar](30) NOT NULL,
[Sex] [nvarchar](2) NOT NULL,
[Height] [nvarchar](5) NULL,
[Level] [nvarchar](2) NULL, --默认为A
[Category] [nvarchar](20) NULL, --默认为“重点管理”
[Sponsor] [nvarchar](100) NULL,
[Contact] [nvarchar](30) NULL,
[Phone] [nvarchar](50) NULL,
[Number] [nvarchar](30) NULL

) ON [PRIMARY]


表结构1

修改后的表结构如下

代码如下:


CREATE TABLE [dbo].[Ryxx](
[Name] [nvarchar](30) NOT NULL,
[IdCardNo] [nvarchar](30) NOT NULL,
[Sex] [nvarchar](2) NOT NULL,
[Height] [nvarchar](5) NULL,
[Sponsor] [nvarchar](100) NULL,
[Contact] [nvarchar](30) NULL,
[Phone] [nvarchar](50) NULL,
[Number] [nvarchar](30) NULL,
[Level] [nvarchar](2) NULL, --默认为A
[Category] [nvarchar](20) NULL --默认为“重点管理”
) ON [PRIMARY]


至此,问题解决。分析原因是因为从文本文件中获取的字段对应到表中缺省列中去了,产生了截断,想想使用bcp 时应该也会出现这样的错误。

标签:SqlBulkCopy
0
投稿

猜你喜欢

  • 基于python操作ES实例详解

    2021-01-06 05:08:28
  • SQL Server的FileStream和FileTable深入剖析

    2023-07-17 01:17:24
  • Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录

    2023-04-13 19:29:37
  • 聊一聊JS中的prototype

    2024-05-02 16:20:18
  • windows python3安装Jupyter Notebooks教程

    2023-04-13 12:56:16
  • SQL Server使用row_number分页的实现方法

    2024-01-28 21:02:38
  • Python 处理数据的实例详解

    2021-05-31 21:29:35
  • sqlserver 存储过程带事务 拼接id 返回值

    2024-01-21 02:41:18
  • 使用mypy对python程序进行静态检查

    2022-06-17 18:10:55
  • IE6/7关于 Absolute Position 、relative 的一些意外

    2008-11-27 11:34:00
  • 用户界面设计中“状态”和“动作”的表达

    2011-01-06 12:36:00
  • Python创建多线程的两种常用方法总结

    2023-11-16 16:41:09
  • Python jieba库分词模式实例用法

    2023-12-09 23:40:42
  • python 星号(*)的多种用途

    2021-08-13 06:16:27
  • Python中的默认参数实例分析

    2023-02-20 20:19:38
  • python 从文件夹抽取图片另存的方法

    2022-08-26 13:00:55
  • 一文详解CNN 解决 Flowers 图像分类任务

    2023-02-28 22:23:39
  • MYSQL教程:查询优化之有效加载数据

    2009-02-27 15:45:00
  • mysql 5.7.18 winx64安装配置方法图文教程

    2024-01-13 16:37:30
  • python3.6+selenium实现操作Frame中的页面元素

    2023-10-13 01:37:00
  • asp之家 网络编程 m.aspxhome.com