国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server導入excel數據之Bug!

2024-08-31 00:51:50
字體:
來源:轉載
供稿:網友
最近幫朋友把他整理的Excel數據導入到Sql Server中,失敗,報錯如下:作為源列4(“產品說明”)的數據對于所指定的緩沖區來講太大。
我的excel文件中有一列叫“產品說明”,就是一些文字。Sql server處理導excel數據流程是這樣的,它會先創建目標表,再把excel數據寫入緩沖區,然后再把緩沖區數據寫入目標表。問題就在創建目標表和寫入緩沖區,sql server會根據現在的excel中的數據格式來寫入緩沖區和創建目標表。比如excel中有一列為編號,里面是數字,sqlserver就會在目標表里建一列叫“編號”,為float類型.
而對于我的excel文件中的"產品說明"這一列,是文字,那sql server如何建立目標列或緩沖區呢?它怎么知道該把目標建立成varchar還是text呢?經過測試,發現sql server是這樣做的,他會取excel文件中的前8行(2的三次方),然后算這8行里“產品說明”的最大長度,如果這8行里最長的 > 255,則目標列和緩沖區就會建立成ntext類型,否則就建立成nvarchar類型。這樣,問題就來了!假設我的excel文件前8行“產品說明”中都 < 255,則目標和緩沖區就被建立為varchar(255)類型了(這里說明一下,你可以修改目標表的字段類型,但緩沖區長度或類型是無法修改的)。而如果我的第10行里“產品說明”的長度超過了255,則sql server往緩沖區里寫的時候,自然就發生了如上的錯誤:數據對于指定的緩沖區來講太大。
這樣,我們導數據當然就失敗了!這個也許不能算bug,因為只是實現得不好(取某列前8行的最大長度并不能真正代表所有行,我想microsoft的工程師為了簡單或者提高性能才這樣做的);也許算是bug,因為不知情的用戶導數據失敗了。而且不知道為何而失敗的!
公理自在人心,讓大家或那些工程師們去評判吧!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松潘县| 龙山县| 全椒县| 怀仁县| 蒲城县| 岚皋县| 启东市| 昌乐县| 麟游县| 阳朔县| 深水埗区| 桂阳县| 禄丰县| 海南省| 麦盖提县| 泰州市| 肇州县| 鸡泽县| 古浪县| 汤阴县| 仙游县| 囊谦县| 平湖市| 赤水市| 南皮县| 长兴县| 襄汾县| 永安市| 安平县| 连江县| 海伦市| 青州市| 科技| 商洛市| 安吉县| 米林县| 清河县| 鹿泉市| 武义县| 淮滨县| 黑水县|