You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server无法从Excel工作簿导入全部数据的问题咨询

解决Excel导入SQL Server的255行/Null列问题

问题根源

你选的Microsoft Excel 5.0版本是适配旧xls格式的驱动,自带256列、65536行的限制,而且默认只扫描前8行判断数据类型——要是那两列的前8行没有效值,驱动就会把它们识别为Null类型,同时把所有文本列的长度默认设为255,直接导致后续数据导入截断或丢失。

具体修复步骤

  • 换对Excel版本选项:回到导入向导的数据源设置,把版本改成Microsoft Excel 2007及更高版本(*.xlsx),对应你的xlsx文件格式,彻底避开旧驱动的限制。
  • 手动修正列映射:
    1. 在「选择源表和源视图」步骤,点编辑映射按钮。
    2. 针对那两列Null的字段,手动指定正确的数据类型(比如nvarchar(MAX)、int等),把列长度从255改成实际需要的大小(嫌麻烦就直接设为MAX)。
    3. 检查所有列的类型是否和Excel里的内容匹配,确认后保存映射继续导入。
  • 让驱动扫描全表判断类型:
    如果还是出现列识别错误,在Excel文件所在文件夹新建excel.ini文件,写入以下内容:
    [Excel 12.0 Xml]
    TypeGuessRows=0
    
    这会强制驱动扫描整个工作表来判断数据类型,而不是只看前8行。改完重启SSMS再重新导入。
  • 备选:用T-SQL直接导入
    要是向导还是搞不定,试试用T-SQL语句导入,可控性更强:
    -- 先启用必要配置(仅第一次执行)
    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    sp_configure 'Ad Hoc Distributed Queries', 1;
    RECONFIGURE;
    
    -- 导入数据到新表
    SELECT * INTO 你的目标表名
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                    'Excel 12.0 Xml;HDR=YES;Database=你的Excel文件完整路径',
                    'SELECT * FROM [Sheet1$]')
    
    注意把路径、表名、工作表名改成你自己的。

内容的提问来源于stack exchange,提问作者Jessica May

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:45:07