今天看到一个excel导入sql server的语句:
  INSERT INTO employee
    (name, officetel)
SELECT 姓名, 手机号码=cast(手机号码 as bigint)-->转为bigint再让SQL隐式转换为varchar
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
    'Data Source="F:\Book1.xls";
    User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] Rowset_1
我上网查了一下,好像都没有提到后面的Rowset_1。
请问大家,这Rowset_1有什么用吗?

解决方案 »

  1.   

    select *FROM openrowset( 'Microsoft.Jet.OLEDB.4.0',
    'EXCEL 8.0;HDR=YES;IMEX=1; DATABASE=e:\test.xls',Sheet1$)
      

  2.   

    Rowset_1应该是表别名,我在SQL_Query里面执行可以通过语法验证
      

  3.   

    Rowset_1 确实是别名。
    可以不用它。你就把Excel看成是一个库,Sheet看成是一个表,他是Sheet的别名。搂主理解成表别名也行,反正这样好理解。
      

  4.   

    我认为应该整个
    OPENDATASOURCE   ('Microsoft.Jet.OLEDB.4.0',   
            'Data   Source="F:\Book1.xls"; 
            User   ID=Admin;Password=;Extended   properties=Excel   5.0')...[Sheet1$] 
    是一个表,而不是sheet1$的表别名