zoukankan      html  css  js  c++  java
  • sqlserver2005 使用OpenRowSet,opendatasource访问远程数据

    OpenRowSet

    1、向Excel查询

            方法(1)

    select * from
           OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$] where   sname     like ''%l%''')

    方法(2)

    select * from
          OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$] ')

    where sname like '%l%'
    1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
    2)[]和美圆$必须要,否则M$可不认这个账

    2、修改Execl

    update
     OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
     set ssex='f' where sname like '%l%'

     

    3、导入导出

    insert into
     OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
    select s#,sname,ssex from student

    /*=================== 导入/导出 excel 的基本方法 ===================*/

    从excel文件中,导入数据到sql数据库中,很简单,直接用下面的语句:

    /*===================================================================*/
    --如果接受数据导入的表已经存在
    insert into student(s#,sname,ssex)
    select * from
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\testdata\test01.xls',[sheet1$])

    --如果导入数据并生成表
    select* into aa from
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\testdata\test01.xls',[sheet1$])


    /*===================================================================*/
    --如果从sql数据库中,导出数据到excel,如果excel文件已经存在,而且已经按照要接收的数据创建好表头

    ,就可以简单的用:
    insert into
     OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
    select * from 表名
    opendatasource

    (1)查看远程数据

    SELECT * 
    FROM opendatasource( 'SQLOLEDB ', 'Data Source=hpsu;User ID=sa;Password=' ).test.dbo.testtable

    (2)向远程表中添加数据

    insert opendatasource( 'SQLOLEDB ', 'Data Source=hpsu;User ID=sa;Password=' ).test.dbo.testtable 
    select * from a

     远程数据的其他访问方法参见SQLserver2005 使用openquery访问远程数据

     

     

     1.1.开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
     exec sp_configure 'show advanced options',1
     reconfigure
     exec sp_configure 'Ad Hoc Distributed Queries',1
     reconfigure

    1.2.关闭Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
    exec sp_configure 'Ad Hoc Distributed Queries',0
    reconfigure
    exec sp_configure 'show advanced options',0
    reconfigure

  • 相关阅读:
    【leetcode】1295. Find Numbers with Even Number of Digits
    【leetcode】427. Construct Quad Tree
    【leetcode】1240. Tiling a Rectangle with the Fewest Squares
    【leetcode】1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold
    【leetcode】1291. Sequential Digits
    【leetcode】1290. Convert Binary Number in a Linked List to Integer
    【leetcode】1269. Number of Ways to Stay in the Same Place After Some Steps
    【leetcode】1289. Minimum Falling Path Sum II
    【leetcode】1288. Remove Covered Intervals
    【leetcode】1287. Element Appearing More Than 25% In Sorted Array
  • 原文地址:https://www.cnblogs.com/luluping/p/2878985.html
Copyright © 2011-2022 走看看