SQL Server 2000 外部数据导入操作指南
在SQL Server 2000的实际使用场景中,将外部数据导入数据库是高频需求,不同格式的数据源对应的导入方式存在差异,下面分别介绍具体的操作方法。

前置准备
无论导入哪种数据源,都需要先确认以下事项:
- 确保SQL Server 2000服务正常运行,且当前登录账号拥有对应数据库的写入权限。
- 提前创建好目标数据表,字段类型要与待导入的外部数据字段类型匹配,避免导入时出现类型转换错误。
- 确认待导入的外部数据文件路径可访问,且文件未被其他程序占用。
导入Excel数据
SQL Server 2000支持直接导入Excel格式的数据,操作步骤如下:
- 打开企业管理器,展开对应的SQL Server实例,找到目标数据库节点。
- 右键点击目标数据库,选择「所有任务」-「导入数据」,打开数据转换服务(DTS)导入向导。
- 在数据源选择页面,选择「Microsoft Excel」,点击「浏览」按钮选择待导入的Excel文件,勾选「首行包含列名称」如果Excel第一行是字段名。
- 在目标选择页面,选择「用于SQL Server的Microsoft OLE DB提供程序」,填写服务器名称、身份验证信息,选择目标数据库。
- 选择「从源数据复制表和视图」,勾选需要导入的Excel工作表,点击「转换」可以调整字段映射规则,确认后执行导入即可。
如果需要批量导入多个Excel文件,也可以编写存储过程实现自动化导入,示例代码如下:
-- 存储过程:批量导入指定路径下的Excel数据到目标表
CREATE PROCEDURE proc_ImportExcelData
@ExcelPath NVARCHAR(255), -- Excel文件完整路径
@SheetName NVARCHAR(50), -- 要导入的工作表名称,格式为 Sheet1$
@TargetTable NVARCHAR(50) -- 目标数据表名称
AS
BEGIN
DECLARE @Sql NVARCHAR(1000)
-- 拼接OPENROWSET查询语句,读取Excel数据并插入到目标表
SET @Sql = 'INSERT INTO ' + @TargetTable + '
SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''Excel 8.0;Database=' + @ExcelPath + ';HDR=YES'',
''' + @SheetName + ''')'
EXEC sp_executesql @Sql
END
GO
-- 调用示例:导入D盘test目录下的data.xlsx的Sheet1工作表到TestTable表
EXEC proc_ImportExcelData
@ExcelPath = 'D:\test\data.xlsx',
@SheetName = 'Sheet1$',
@TargetTable = 'TestTable'导入CSV/TXT文本数据
对于CSV、TXT等纯文本格式的数据,可以使用大容量插入(BULK INSERT)命令快速导入,操作方式如下:
首先确认文本文件的格式,比如字段分隔符是逗号还是制表符,文本限定符是否为双引号,首行是否为字段名。之后执行对应的BULK INSERT语句即可,示例代码如下:
-- 导入CSV文件示例,字段以逗号分隔,文本用双引号包裹,首行是字段名
BULK INSERT TargetTable -- 目标数据表名称
FROM 'D:\data\user_info.csv' -- CSV文件完整路径
WITH (
FORMAT = 'CSV', -- 指定文件格式为CSV
FIELDTERMINATOR = ',', -- 字段分隔符为逗号
ROWTERMINATOR = '\n', -- 行分隔符为换行符
FIRSTROW = 2, -- 从第二行开始读取,跳过首行字段名
CODEPAGE = '936' -- 指定字符集为GBK,避免中文乱码
)
-- 导入TXT文件示例,字段以制表符分隔,无文本限定符
BULK INSERT TargetTable
FROM 'D:\data\order_info.txt'
WITH (
FIELDTERMINATOR = '\t', -- 字段分隔符为制表符
ROWTERMINATOR = '\n',
FIRSTROW = 1 -- 首行就是数据,从第一行开始读取
)如果文本文件的编码是UTF-8,需要先将文件转换为GBK编码,或者在CODEPAGE参数中指定对应的编码值,避免导入后出现乱码。
导入Access数据库数据
导入Access数据库(.mdb/.accdb格式)的数据与导入Excel类似,也可以通过DTS向导完成,步骤如下:
- 打开DTS导入向导,数据源选择「Microsoft Access」,点击「浏览」选择待导入的Access文件。
- 目标选择对应的SQL Server实例和数据库,后续步骤与导入Excel一致,选择需要导入的Access表或查询,调整字段映射后执行导入。
也可以通过OPENROWSET命令直接读取Access数据,示例代码如下:
-- 从Access数据库读取数据插入到SQL Server目标表
INSERT INTO TargetTable
SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''D:\data\source.mdb'';''admin'';'''', -- Access文件路径,管理员账号,无密码
''SELECT * FROM AccessTableName'') -- Access中要导入的表名常见问题处理
- 如果导入时出现「无法初始化链接服务器」的错误,需要确认当前SQL Server实例是否开启了Ad Hoc Distributed Queries功能,可通过以下代码开启:
- 导入后中文显示乱码,优先检查外部文件的编码,以及导入语句中指定的CODEPAGE参数是否与文件编码匹配。
- 如果导入的数据有重复,可以在导入前先清空目标表,或者在导入语句中添加去重逻辑,避免重复数据入库。
SQL_Server_2000数据导入文本文件导入Excel导入Access导入修改时间:2026-05-30 22:11:09