您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關使用SqlBulkCopy時為注意Sqlserver表中使用缺省值的列的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
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表中使用缺省值的列的示例分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。