溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用SqlBulkCopy時為注意Sqlserver表中使用缺省值的列的示例分析

發(fā)布時間:2021-12-04 15:48:05 來源:億速云 閱讀:292 作者:柒染 欄目:數(shù)據(jù)庫

本篇文章給大家分享的是有關(guān)使用SqlBulkCopy時為注意Sqlserver表中使用缺省值的列的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

SqlBulkCopy 來自數(shù)據(jù)源的 String 類型的給定值不能轉(zhuǎn)換為指定目標列的類型 nvarchar。

在網(wǎng)上找了下,大都說是因為數(shù)據(jù)庫中的字段過?。?來自數(shù)據(jù)源的 String 類型的給定值不能轉(zhuǎn)換為指定目標列的類型 nvarchar。 ),造成截斷的錯誤導致,仔細檢查后發(fā)現(xiàn)我的表設(shè)計中沒有字段過小的情況,也不是單引號的問題。 后經(jīng)仔細調(diào)試發(fā)現(xiàn),由于使用SqlBulkCopy導入時我的文本文件與庫中的表列不對應造成的。我的文本文件中有字段18個,而我的表中只使用了9個字段,且有兩個是文本文件中沒有的(即表結(jié)構(gòu)1中的[Level]與[Cagegory]字段),由數(shù)據(jù)庫填入默認值。

表結(jié)構(gòu)如下:

代碼如下: 表結(jié)構(gòu)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]

表結(jié)構(gòu)1 

修改后的表結(jié)構(gòu)如下

代碼如下: 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]

分析原因是因為從文本文件中獲取的字段對應到表中缺省列中去了,產(chǎn)生了截斷,想想使用bcp 時應該也會出現(xiàn)這樣的錯誤。

以上就是使用SqlBulkCopy時為注意Sqlserver表中使用缺省值的列的示例分析,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI