cczhoufeng

1.开启SQL SERVER的\'Ad Hoc Distributed Queries\'开关,需要用拥有服务器sysadmin角色权限的登录帐号

exec sp_configure \'show advanced options\',1;reconfigure;
exec sp_configure \'Ad Hoc Distributed Queries\',1;reconfigure;

执行后,控制台输出

2.创建临时表T_EXCELTOSQL_TEMP,将excel中数据导入

--导入EXCEL  JET引擎:Microsoft.Jet.OLEDB.4.0(导入office97-2003) ACE引擎:Microsoft.ACE.OLEDB.12.0(导入office2007-2010)
--Data Source是服务器存放excel的路径
--“一年级”是excel中sheet名,$必填
 SELECT * INTO T_EXCELTOSQL_TEMP
 FROM OpenDataSource( \'Microsoft.ACE.OLEDB.12.0\',
 \'Data Source="d:\fs.xls";User ID=Admin;Password=;Extended properties=Excel 12.0\')...[一年级$]

导入后表结构为

3.根据业务需要,为临时表添加字段

ALTER TABLE T_EXCELTOSQL_TEMP   ADD NF VARCHAR(4) null ;    --入学年份
ALTER TABLE T_EXCELTOSQL_TEMP   ADD BH VARCHAR(2) null ;    --班号
ALTER TABLE T_EXCELTOSQL_TEMP   ADD BH_INT int null ;        --班号int类型
ALTER TABLE T_EXCELTOSQL_TEMP   ADD bj_id CHAR(36) null ;    --班级ID

4.为新字段赋值

--修改录入相关数据
UPDATE dbo.T_EXCELTOSQL_TEMP SET nf=SUBSTRING(班级名称,1,4),bh=SUBSTRING(班级名称,5,2),BH_INT=CAST(SUBSTRING(班级名称,5,2) AS INT);
----------------------------------------------------------
--多表关联更新
UPDATE t1 SET t1.bj_id=t2.bj_id FROM  dbo.T_EXCELTOSQL_TEMP t1 INNER JOIN dbo.T_XG_CLASS t2 ON t1.NF=t2.RXNF AND t1.BH_INT=t2.BH
WHERE SCHOOL_ID=100;

5.基本的导入和更新步骤已经完毕,其他根据个人业务操作,执行完成后,因为安全性问题,需要关闭\'Ad Hoc Distributed Queries\'开关

exec sp_configure \'Ad Hoc Distributed Queries\',0;
reconfigure;exec sp_configure \'show advanced options\',0;reconfigure;

 执行结果

分类:

技术点:

相关文章:

  • 2021-10-03
  • 2021-10-12
  • 2021-12-06
  • 2021-12-05
  • 2021-06-07
  • 2021-12-10
  • 2022-12-23
猜你喜欢
  • 2021-08-10
  • 2022-02-19
  • 2021-07-03
  • 2021-06-13
  • 2021-06-20
  • 2022-12-23
相关资源
相似解决方案