日期:2014-05-19  浏览次数:20474 次

请教一个邹建老师书上的问题.
我看了邹建老师的 < <SQL   Server200开发与管理> > 一书中的 "数据导入导出 "一节,始终看不明白远程客户端导入Execl数据的方法;
比如我现在有一个Execl表,要导到IP地址为192.168.1.10的SQL   Server服务器上要如何写?
我原来是这样写的:
CREATE   PROCEDURE   pro_t0419
@fileName   nvarchar(50)
AS
      exec( '
              select   *  
              from   OpenDataSource(   ' 'Microsoft.Jet.OLEDB.4.0 ' ',
' 'Data   Source= '+@fileName+ ';User               ID=Admin;Password=;Extended   properties=Excel   5.0 ' ')...[Sheet1$]
              ')

这样只能在本地计算机导入,如果要在远程导入该怎么做?
另外我还不清楚什么叫 "通用命名规则(UNC) "

------解决方案--------------------
...
UNC (Universal Naming Convention) / 通用命名规则,也叫通用命名规范、通用命名约定。 网络(主要指局域网)上资源的完整 Windows 2000 名称。它符合 \servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为: \servername\sharename\directory\filename.*
------解决方案--------------------
我知道用导入导出工具可以
------解决方案--------------------
192.168.1.10的SQL Server服务器上加

CREATE PROCEDURE pro_t0419
@fileName nvarchar(50)
AS
exec( '

select * into 表名
from OpenDataSource( ' 'Microsoft.Jet.OLEDB.4.0 ' ',
' 'Data Source= '+@fileName+ ';User ID=Admin;Password=;Extended properties=Excel 5.0 ' ')...[Sheet1$]
')

如果原表存在
CREATE PROCEDURE pro_t0419
@fileName nvarchar(50)
AS
exec( '
insert into 表名
select *
from OpenDataSource( ' 'Microsoft.Jet.OLEDB.4.0 ' ',
' 'Data Source= '+@fileName+ ';User ID=Admin;Password=;Extended properties=Excel 5.0 ' ')...[Sheet1$]
')

------解决方案--------------------
远程的, 要用:

\\servername\share folder\filename

的形式, 并且要求你的sql服务的启动账户对\\servername\share folder\有适当的访问权限.