利用SqlBulkCopy时应注意Sqlserver表中利用缺省值的列[MSSQL防范]
本文“利用SqlBulkCopy时应注意Sqlserver表中利用缺省值的列[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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时应注意Sqlserver表中利用缺省值的列[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |