opendatasource

本文介绍了一种使用SQL的opendatasource功能进行跨服务器数据库间的数据选择、插入及更新的方法。通过具体实例展示了如何从一个数据源选择数据并插入到另一个数据源中,同时还演示了如何更新目标数据源中的特定记录。

select * from opendatasource('sqloledb','Data Source=(local)/SQLEXPRESS;Initial Catalog=amwhm6_release;User ID=sa;Password=1').amwhm6_release .dbo.mst_chkData_Biopulsar_rpt_1_temp

 insert into  opendatasource('sqloledb','Data Source=DENGYU/SQLEXPRESS;Initial Catalog=amwhm6_release;User ID=sa;Password=1).amwhm6_release .dbo.mst_chkData_Biopulsar_rpt_1select * from mst_chkData_Biopulsar_rpt_1  

update opendatasource('sqloledb','Data Source=DENGYU/SQLEXPRESS;Initial Catalog=amwhm6_release;User ID=sa;Password=1).amwhm6_release .dbo.mst_chkData_Biopulsar_rpt_1 set tstorderno=c.tstorderno  from mst_chkdata_ett as c ,  opendatasource('sqloledb','Data Source=DENGYU/SQLEXPRESS;Initial Catalog=amwhm6_release;User ID=sa;Password=1).amwhm6_release .dbo.mst_chkData_Biopulsar_rpt_1 as a where c.tstorderno =a.tstorderno

### 使用 `OPENDATASOURCE` 函数在 SQL Server 2000 中访问外部数据源 在 SQL Server 2000 中,`OPENDATASOURCE` 是一种动态连接远程服务器的方法。此功能允许临时链接到 OLE DB 数据提供程序而无需创建永久性的链接服务器对象。 #### 访问 Excel 文件的数据 为了从 Excel 文件读取数据并将其作为表返回给 SQL 查询,可以使用如下语法: ```sql SELECT * FROM OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\path\to\yourfile.xls;Extended Properties="Excel 8.0"' ). [...]SheetName$ ``` 这里需要注意的是,在指定扩展属性时应确保版本号匹配所使用的 Excel 版本[^2]。 对于较新的 Excel 文件(如 .xlsx),则应该调整驱动器名称为 `'Microsoft.ACE.OLEDB.12.0'` 并相应更改其他参数设置以适应新格式的要求[^3]。 #### 插入 Excel 数据至 SQL 表格 当需要将来自 Excel 的记录插入现有的数据库表内时,可以通过组合上述查询方式来实现这一点。假设目标是要把名为 "test.xlsx" 的电子表格里特定工作表的内容复制到本地的一个叫做 `test.dbo.test` 的表结构中,则命令可能看起来像这样: ```sql INSERT INTO test.dbo.test (ColumnA, ColumnB, ...) SELECT * FROM OPENDATASOURCE ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Data\DDfiles\test.xlsx;' + 'Extended Properties="Excel 8.0;HDR=YES;"' ).[...SheetName$] WHERE ... ``` 这里的 `[...]SheetName$` 部分应当替换为你实际要操作的工作表的名字;如果不确定具体名字的话,默认情况下会是类似于 `Sheet1$`, `Sheet2$` 这样的形式[^4]。 请注意,由于安全性考虑以及性能方面的原因,在生产环境中执行此类跨平台的操作之前最好先进行全面测试,并且只授予必要的权限给涉及的对象和服务账户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值